我已阅读并复制了有关使用与socket.io,express和会话存储会话的大量示例。然而,每次我拨打sessionStore.get()
(或sessionStore.load()
),我所得到的全部是undefined
。为什么?无法从会话存储中获取会话
这里是我的代码(简化):
var app = require('express')(),
session = require('session'),
MongoStore = require('connect-mongostore')(session);
app.use(session({
store: new MongoStore({ 'db': 'sessions' });
}));
io.use(function(socket, next) {
var req = socket.request,
reqCookie = cookie.parse(req.headers.cookie),
sessid = reqCookie['connect.sid']; // == actual session ID
sessionStore.get(sessid, function(err, session) {
err // == undefined
session // == undefined
});
next() ;
});
我也是在connect-mongostore
代替试图与session.MemoryStore
,具有相同的结果。我修改 node_modules/express-session/session/memory.js
尝试在sessionStore注销会话:
MemoryStore.prototype.get = function(sid, fn){
var self = this;
console.log(self.sessions); // Output: {}
我是个新手,当谈到会和这样的,所以谢谢你陪我的轴承。
更新:我试过两个不同的系统和网络上的代码,但我仍然得到相同的结果。