我正在使用Mongo商店的Express会话。在下面的示例代码中,如果我在delete
之前编写const result
,它将正常工作,并且将从MongoDB中删除session.message
。
exports.getIndex = function(req, res) {
if(req.isAuthenticated())
return res.redirect('/panel');
delete req.session.messages;
const result = res.render('login', {title: 'Gmail Project', error: req.session.messages});
return result;
}
但是,如果我在cont result
之后编写删除语句,我猜,会话应该在下一个请求中删除。但在这种情况下,会话不会被删除。
exports.getIndex = function(req, res) {
if(req.isAuthenticated())
return res.redirect('/panel');
var result = res.render('login', {title: 'Gmail Project', error: req.session.messages});
delete req.session.messages;
return result;
}
此外,这是我的中间件在app.js
文件中使用的顺序,
app.use(expressSession({
secret: 'marandipedro',
maxAge: new Date(Date.now() + 3600000),
store: new MongoStore({ mongooseConnection: mongoose.connection })
}));
app.use(passport.initialize());
app.use(passport.session());
app.use(messages.flushMessages());
在这些行之后定义路由。