express-session 才是真正在服务端保存数据的中间件,它依赖cookie-parser。
在app.js
中引入,在 app.use(cookieParser()) 之后挂载:
var session = require('express-session');
app.use(session([options]));
同样说几个常用的 options:
{
'secret': 'ruidoc', # 签名,与cookie-parser中cookie设置的签名字符串必须一致
'cookie': {
'maxAge': 90000
},
'name': 'session_id' # 在浏览器中生成cookie的名称key,默认是connect.sid
}
因为创建 session 的同时会创建 cookie 来保存 sessionId,所以 options 中的 cookie.maxAge 可看作是 session 的有效时长。
创建session
# 创建一个session
req.session.key = value
# 创建多个session
req.session = {
key1: value1,
key2: value2
}
获取session
var session = req.session # 获取session集合
var value = req.session.key # 获取名称为key的session的值
销毁session
req.session.destroy() # 清空所有session
req.session.key.destroy() # 销毁名称为key的session的值