express-session 不保存任何值
express-session doesn't save any value
在我重新加载或移动到另一页之前,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: '~~~~~'
}));
routes/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');
}
当我访问'localhost: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",
- "express-session": "^1.14.0"
根据the documentation,"The expires
option should not be set directly; instead only use the maxAge
option"。
如果删除 expires
属性,它应该可以工作。
在我重新加载或移动到另一页之前,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: '~~~~~'
}));
routes/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');
}
当我访问'localhost: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",
- "express-session": "^1.14.0"
根据the documentation,"The expires
option should not be set directly; instead only use the maxAge
option"。
如果删除 expires
属性,它应该可以工作。