node.js - 如何使用 SessionID 从 RedisStore (connect-redis) 获取 session 数据?

标签 node.js session express redis socket.io

因此,以下代码片段显示了如何设置 RedisStore 以及如何从传入的 GET 请求中获取 sessionID。但是,sessionStore.get( req.cookies['connect.sid'] ) 的计算结果为 undefined

有人可以指出我做错了什么吗?从 req.cookies['connect.sid'] 返回的 sessionID 示例如下所示:

s:_8pvC4Zju4GjMOvN6Y4ej8SRVYvopn8C.ctuA/+pQnZt96bLgOW1xizHOLI2nBuH4vzO9Agm26Lk
var expressSession = require('express-session'); 
var RedisStore = require('connect-redis')(expressSession);

var sessionStore = new RedisStore({host: '127.0.0.1', port: 6379});
app.use(expressSession({store: sessionStore,
                        secret: 'xxxx' }));

app.get("/*", function(req, res, next) { 
  if(typeof req.cookies['connect.sid'] !== 'undefined') {
    console.log('sessionID: ', req.cookies['connect.sid']);
    console.log( sessionStore.get(req.cookies['connect.sid'] ));
  }
  next();
});

最佳答案

sessionStore.get 是一个异步方法,你需要给这个方法传递一个回调,像这样:

sessionStore.get(req.cookies['connect.sid'], function (err, session) {
  console.log(session);
})

观看有关 express-session 的文档.

关于node.js - 如何使用 SessionID 从 RedisStore (connect-redis) 获取 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34101539/

相关文章:

node.js - GraphQL 嵌套突变 + Sequelize

javascript - 如何从函数中取出变量? - Node

node.js - 避免在 nodejs 中使用 ../../../require

node.js - 使用带有 Passportjs : what is accessToken for, 的 Facebook 进行身份验证 注册后我应该存储什么?

node.js - 在现代 Node.js 中更新 Error 对象的性能损失

json - 如何使用 lodash 将字符串连接到现有数组元素

java - session 处理问题 - HttpSession 和 Websockets 创建的 session

php - session 超时后如何在 Symfony 中自动重定向用户?

asp.net - 在 Azure 云服务中启用共置 session 缓存

node.js - Node.js Express库的简单代码不起作用