我已閱讀並複製了有關使用與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: {}
我是個新手,當談到會和這樣的,所以謝謝你陪我的軸承。
更新:我試過兩個不同的系統和網絡上的代碼,但我仍然得到相同的結果。