帆JS - 会话

Nem*_*igo 5 session node.js sails.js

每次重新加载页面时,我都会运行此函数:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是每次我跑

    console.log("Session: ");
    console.log(req.session);
Run Code Online (Sandbox Code Playgroud)

player_id不存在,每次重新加载页面时,if语句返回false.

console.log("Creating player: " + req.session.player_id);
Run Code Online (Sandbox Code Playgroud)

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

Nem*_*igo 6

似乎解决方案就像这样简单:

res.send(req.session);
Run Code Online (Sandbox Code Playgroud)

如果我将其添加到else语句的末尾,则会话将被存储并可以重复使用.

为什么会这样,我不知道.如果有人想要精心制作,请成为我的客人.

  • 注意:在发送响应之前,该属性不会存储在会话存储中,也不会对其他请求可用.来自:http://sailsjs.org/documentation/concepts/sessions (3认同)