无法从node.js connect-mongo中的会话存储中获取会话

时间:2013-04-15 12:24:53

标签: node.js mongodb session

我使用connect-mongo存储我的会话数据,bloww是启动我的快速服务器和mongodb会话的代码。

var MongoStore = require('connect-mongo')(express);

var sessionStore = new MongoStore({url: config.sessionStore}, function() {
                          console.log('connect mongodb session success...');
})

app.configure(function(){
    ............
    //  // cookieParser should be above session
    app.use(express.cookieParser());
     // express/mongo session storage  //  
    app.use(express.session({ 
                      cookie: { maxAge: 24 * 60 * 60 * 1000 },
                      store: sessionStore,
                      secret: config.sessionSecret,
                  key: 'express.sid',
                          clear_interval: 3600
                                          }));
    ............
})

我查看了Chrome浏览器,当然可以看到我的会话密钥 - ' express.sid'和相应的价值。

当用户登录我的服务器时,我想从我的mongodb会话存储中获取他们的会话数据。但是,会话存储查询会话数据时没有错误,只显示输出 null

var connect = require('express/node_modules/connect')
, parseSignedCookie = connect.utils.parseSignedCookie
, cookie = require('express/node_modules/cookie');

function fileUpload(req, res) {

    var sid = req.cookies['express.sid'];
    var sessionID = parseSignedCookie(sid, config.sessionSecret);   
    console.log('fileUpload  ',req.ip, sid,sessionID);
    // output the session value as expected 

    // but session store can't query the session data, no error but just no values
    sessionStore.get(sid, function(err, session){
          // access to session
           if(err) console.log("session store err".red,error);
           else console.log("sessionStore auth  ".green+session);
    }); 

    res.send(200);
};

我的节点或我错过的任何其他内容出了什么问题?

0 个答案:

没有答案