快速会话不会保存任何值
在我重新加载或移动到另一个页面之前, console.log(req.session)
正好打印我保存的值,但不再是。 我尝试了req.session.save(),req.session.regenerate({..})或同时使用.save()和.reload()。 我不明白为什么会发生。 我正在为这个6个小时挣扎。
app.js
var session = require('express-session'); app.use(session({ cookie: { maxAge:30 * 60 * 1000, expires: 30* 60 * 1000, httpOnly: true }, rolling: true, resave: true, saveUninitialized: true, secret: '~~~~~' }));
路线/ index.js
router.get('/', function(req, res, next) { req.session.test = true; req.session.save(); console.log(req.session); res.render('index'); }); router.get('/reg', function(req, res){ console.log(req.session); res.render('another'); }
当我访问“本地主机:3000”控制台打印像这样
Session { cookie: { path: '/', _expires: 1800000, originalMaxAge: 1800000, httpOnly: true }, test: true }
但是,如果我去'localhost:3000 / reg',它已经消失了。
Session { cookie: { path: '/', _expires: 1800000, originalMaxAge: 1800000, httpOnly: true } }
包版本
- “express”:“〜4.13.1”,
- “快速会话”:“^ 1.14.0”
根据文档 , “ expires
选项不应该直接设置,而只能使用maxAge
选项” 。
如果您删除expires
属性,它应该工作。