快速会话不会保存任何值

在我重新加载或移动到另一个页面之前, 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属性,它应该工作。