Sails JS - 会话处理

5
每次重新加载页面时,我都会运行这个函数:
init: function(req, res)
{
    console.log("Session: ");
    console.log(req.session);

    if (req.session.player_id !== undefined)
    {
        Player.getPlayer(req.session.player_id);
    }
    else
    {
        req.session.player_id = sails.uuid.v4();
        req.session.save();
        console.log("Session saved");

        Player.createPlayer(req.session.player_id);
        console.log("Creating player: " + req.session.player_id);
    }
}

问题在于每次运行时都会出现以下问题:
    console.log("Session: ");
    console.log(req.session);

玩家ID不在此处,每次重新加载页面时,if语句都会返回false。
console.log("Creating player: " + req.session.player_id);

返回了正确的值,但我无法弄清楚为什么会话在每次页面重新加载时不跟随用户?

  1. undefined 进行比较,最好使用 **!==**。
  2. console.log(req.session.player_id); 显示什么?
- Bulkin
  1. 感谢你的建议。
  2. 你指的是哪里?
- ZeroZipZilch
除了 console.log(req.session); - Bulkin
1个回答

6

看起来解决方案就是这么简单:

res.send(req.session);

如果我将这个代码块添加到else语句的末尾,会存储会话并可以重复使用。
为什么会这样,我不知道。如果有人想详细说明,请随便说。

3
注意:该属性在响应发送之前不会被存储在会话存储中,也不会对其他请求可用。来源:http://sailsjs.org/documentation/concepts/sessions - Skalár Wag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接