我有以下代码:
var session = require('express-session');
var sessionConfig = {
secret: 'somesecretkey',
cookie: {secure: false},
resave: false,
saveUninitialized: false,
store: new mongostore({ mongooseConnection: mongoose.connection })
}
router.get('/', function(req, res, next) {
var abc = req.session.user;
var trueOrFalse = isset(abc);
console.log(trueOrFalse);
req.session.user = 1;
req.session.save();
});
function isset(var1){
if( typeof var1 !== 'undefined' ) {
return true;
}
return false;
}
我的期望回复是第一次打印'false',然后刷新页面后,它将始终在以下时间打印'true'。但是,它始终打印'false',因为它没有保留值。
请帮忙。
答案 0 :(得分:0)
我不确定,但似乎您没有将会话添加为中间件,以便所有传入的请求都通过此。您可以这样做(在主文件中通常是app.js
):
var session = require('express-session');
app.use(session({
secret: 'somesecretkey',
cookie: {secure: false},
resave: false,
saveUninitialized: false,
store: new mongostore({ mongooseConnection: mongoose.connection })
}));
// Now here come your route handlers
app.use("/", routes);