简介
express-session是express中的一个处理session的中间件,可以说是express中最常见的中间件之一了.由于会话管理依赖cookie的使用,所以它的api中有很多用于控制cookie的部分.
总的来说
express-session有如下的特点: session管理(基本功能)
cookie签名
可替换持久储存模块
本文中使用的版本为
1.15.6.安装
npm install express-session --save引入&使用
const express = require('express');
const app = new express();
const expressSession = require('express-session');// 使用express-session
app.use(expressSession({
secret:'hello world',// cookie签名 这个属性是必须的 具体配置和`cookie-parser`一样
saveUninitialized:true, // 是否自动初始化 默认为true
resave:false,// 当用户session无变化的时候依然自动保存
cookie:{ // cookie的信息具体操作和`cookie-parser`一样
maxAge:1800000// 30分钟后过期
},
rolling:true// 每次请求的时候覆写cookie
}))
会话简介
在express-session文档中有如下的一句说明:
Note Session data is not saved in the cookie itself, just the session ID. Session data is stored server-side.
Session中包含的数据不会保存在cookie中,仅仅是在cookie中保存了一个SessionId而已.实际的session的数据保存在服务端.
简单理解就是一个Map,键对应的是session id值保存在cookie中,值对应的是用户保存在服务端的数据.
api介绍
参数
创建
express-cookie参数基本分为两种. 针对于cookie的设置
针对于express-session的设置
cookie设置一览:
app.use(expressSession({
secret:'hello world', // cookie 签名必须有否则会报错
cookie:{
domain:<参数>,
expires:<参数>,
httpOnly:<参数>,
path:<参数>,
sameSite:<参数>,
secure:<参数>,
maxAge:1800000
}
}));
而这些对应的参数就是服务端对于cookie的写入参数,至于各个参数是什么意思参考下面的文章:
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Set-Cookie
express-session部分设置:
app.use(expressSession({
secret:'hello world', // cookie 签名必须有否则会报错
genid:function (request) { // 用于替换掉默认ID生成的函数 第一个参数为reqeust









