【问题标题】:express-session doesn't save any valueexpress-session 不保存任何价值
【发布时间】:2016-11-12 08:46:54
【问题描述】:

在我重新加载或移动到另一个页面之前,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');
}

当我访问 '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 } }

包版本

  • “快递”:“~4.13.1”,
  • “快速会话”:“^1.14.0”

【问题讨论】:

    标签: javascript node.js session express express-session


    【解决方案1】:

    根据the documentation“不应直接设置expires 选项;而只能使用maxAge 选项”

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

    【讨论】:

    • 有效!谢谢你。我犯了同样的错误。我总是粗略地阅读文档:(
    猜你喜欢
    • 2018-06-30
    • 2015-03-13
    • 2020-07-01
    • 1970-01-01
    • 2020-11-16
    • 2019-07-17
    • 1970-01-01
    • 2019-06-28
    • 2019-08-29
    相关资源
    最近更新 更多