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 } }

软件包版本

根据the documentation"The expires option should not be set directly; instead only use the maxAge option"

如果删除 expires 属性,它应该可以工作。