nodejs 之 session的使用
1.适用架构:前后端不分离项目
2.使用
· 引入express-session依赖
npm i express-session -save
· 引入session中间件
const session = require('express-session')
// session 中间件
app.use(session({
secret: 'laotunan', // secret 属性的值可以为任意字符串
resave: false, // 固定写法
saveUninitialized: true, // 固定写法
}))
· 设置用户session信息
const express = require('express')
// 登录
router.post('/api/login', (req, res) => {
const name = req.body.username;
const password1 = req.body.password1;
let sql = `select * from userinfo where name='${name}'`
con.sqlConnect(sql, (err, data1) => {
if (!data1.length) {
return res.send({ code: 400, msg: '用户不存在' })
} else {
let sql = `select * from userinfo where password1='${password1}' and name='${name}'`
con.sqlConnect(sql, (err, data) => {
if (!data.length) {
return res.send({ code: 400, msg: '登录密码错误' })
}
req.session.user = data // 将用户信息存储到session中
req.session.islogin = true // 将用户的登录状态存储到session中
res.send({ name: name, code: 200, msg: '登录成功', data: data })
})
}
})
}),
· 销毁用户session信息
// 退出
router.post('/api/logout', (req, res) => {
// 清空session
req.session.destroy()
res.send({ code: 200, msg: '成功' })
})