node.js - 未在 sails.js afterDisconnect() 中显示存储在 session 中的变量

标签 node.js sockets session sails.js

我正在保存req.session.user = user;//其中 user 包含单个用户对象
然后console.log(req.session.user.user_id);//这在这里有效
但在socket.js文件中,afterDisconnect函数中session.user不可用。
以下是afterDisconnect函数的代码


    afterDisconnect: function(session, socket, cb) {
        console.log(session); // this is not the one that we used above, it's new. Why?
        User.findOne({user_id: session.user.user_id})
            .exec(function(err, user){
            if(err) res.serverError();

            user.online = false;
            user.save();
            });

        return cb();
    }

当用户/套接字断开连接时,它显示以下错误。

warn: Socket disconnected, but session could not be loaded to pass to configured disconnect handler: `sails.config.sockets.onDisconnect()`.  Will pass a fake, empty session as argument to lifecycle callback.  Details:
 Error: Session could not be loaded

最佳答案

但是,在 session.js 中将适配器更改为 mongo 是有效的。

关于node.js - 未在 sails.js afterDisconnect() 中显示存储在 session 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173983/

相关文章:

session - 如何在客户端完全禁用 SSL session 恢复?

node.js - 使 Node.js REPL 的异步函数同步

angularjs - Angular 嵌套重复,保存到数据库不起作用

PHP - 非阻塞,传出 TCP 连接 - 如何?

c++ - 有 DNS 名称时创建套接字

php - 我可以安全地删除cpanel中的cagefs/var/cpanel/php/sessions/ea-phpxx(xx是版本)中的 session 吗?

javascript - 为什么React应用程序不保留nodejs服务器登录 session ?

node.js - expressJS/Node应用程序运行错误

C 从客户端获取唯一标识符(TCP 套接字)

mysql - 将变量发送到下一页而不覆盖