I am using connect-mongo to store my session data, blew is the code to start my express server and mongodb session.
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
}));
............
})
I have looked into the chrome browser and can of course see my session key- 'express.sid' and corresponding value.
when the user logs into my server, I want to get their session data from my mongodb session store. However, session store query the session data with no error but just showing the output 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);
};
What goes wrong with my node, or any another things I missed?