0

我是 node.js 和会话的新手,我试图在 node.js 会话中存储一些值,但是每次我重新加载页面并检查 console.log 会话都没有保存。我的代码:

var session;
var org;

function checkSession(argument){
  var sess = argument;
  if(sess.org){
    return null;
  }
  else{
    return sess.org;
  }
}
/* GET home page. */
router.get('/', function(req, res, next) {
  session = req.session;
  var sessionChecked = checkSession(session);
  if(sessionChecked){
    org = sessionChecked;
  }
  else{
    org = req.query.org || 'Google';
    session.org = org;
    session.save();
  }

所以基本上我想要的是,当用户第一次加载页面时,他可以输入一个组织,当他这样做时,这个组织被保存在会话中,所以当他重新加载页面时,组织已经被选中.

我知道我一定是在做一些真正错误和/或糟糕的编码,但我就是想不通。

谢谢!

4

2 回答 2

1

看起来调用session.save()没有按照您的预期进行。除非路由完全处理,否则 Express 不会写入会话。您可能需要res.end()在 get 函数结束时调用。

查看https://github.com/expressjs/session#reqsession并尝试理解该示例中的每一行代码。

祝你好运!

于 2015-09-23T07:00:48.897 回答
0

事实证明,问题是我的会话将在 20 秒后到期。傻我。

于 2015-10-01T17:35:24.670 回答