因此,以下代码片段显示了如何设置 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/