express-session模块的简单使用

对应英文网站:https://www.npmjs.com/package/express-session
npm下载:(依赖express框架)

npm install express  express-session 

配置参数

参数 作用
secret 一个字符串,作为服务器端生成session签名
name 返回客户端的key名称,默认是connect.sid,可以自行设置
resave 强制保存session 即使没变化 默认true ,建议改为false
saveUninitialized 当新建强制将未初始化的 session 存储。 默认值是true 建议设置成true,建议添加,
cookie 设置返回到前端key的属性,常用属性如下:默认时:{path:’/’,httpOnly:true,secure:false,maxAge:null}
path:路径
httpOnly:只允许http请求
maxAge: 过期时间 单位毫秒
secure:默认false ,设置为true 时 https这样的情况才可以访问cookie
rolling 在每次请求时强行设置cookie,这将重置cooKie过期时间,默认false

简单服务器端demo

const express = require('express')
const path = require('path')
const formidable = require('formidable')
const session = require('express-session')

const app = express()
//配置session
app.use(
  session({
    secret: 'keyboard cat',
    resave: false,
    saveUninitialized: false,
  })
)
app.use(express.static(path.join(__dirname, 'public')))

app.post('/login', (req, res) => {
  //创建表单解析对象
  var form = formidable.IncomingForm()
  //解析表单
  form.parse(req, (err, fields, file) => {
    //接收客户端传递过来的用户名与密码
    const { username, password } = fields
    //用户名密码比对
    if (username == 'itcast' && password == '123456') {
      //设置session
      req.session.isLogin = true
      res.send({ message: '登录成功' })
    } else {
      res.send({ message: '登录失败,用户名或密码错误' })
    }
  })
})

app.get('/checkLogin',(req,res)=>{
  //判断用户是否处于登录状态
  //获取session
  if(req.session.isLogin){
    res.send{message:'处于登录状态'}
  }else{
    res.send({message:'处于未登录状态'})
  }
})

app.listen(3001)
console.log('服务器启用成功')

猜你喜欢

转载自blog.csdn.net/u011523953/article/details/106177034