【发布时间】:2018-03-27 15:16:42
【问题描述】:
我有以下代码:
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'。但是,它总是打印“假”,因为它没有保留该值。
请帮忙。
【问题讨论】:
-
如果在第一次加载和后续加载这两种情况下输出
req.session.user,你会在控制台中得到什么? -
@MohitBhardwaj 无论我重新加载页面多少次,我总是得到未定义的 req.session.user 值。
-
您确定您的
mongoose.connection工作正常吗?你能检查一下你连接的数据库中有一个sessions集合吗? -
@MohitBhardwaj 是的,我确定 mongoose.connection 没问题。这里的问题是每当我重新加载页面时,我创建的会话都会重置。
标签: javascript session express express-session