我正在使用Nodejs和Express。我有一个routes.js文件定义我的所有路线。当我尝试使用req.session.regenerate()时,express会创建多个会话,包括静态文件请求。
令人困惑的是req.session.regenerate()在app.get(' /'路由中,它似乎来自console.log它只被调用一次。但不知怎的,当我看到mongodb会话集合,为一个页面请求创建了多个会话。
基本上我要做的是当请求登录页面时我想创建一个新会话,以便快递不会重复使用以前会话的cookie。
任何指针?
exports = module.exports = function(app, passport) {
//When I uncomment this line, it shows me the number of times a request is made.
//app.all('*', function(req, res, next){console.log('Request made to server'); next();});
app.get('/', function(req, res){
if (req.isAuthenticated()){
res.redirect('./home');
}else{
req.session.regenerate(function(err) {
console.log('Regenerated');
})
res.render('./login')
}
});
答案 0 :(得分:3)
将您的快速会话中间件放在express.static()
中间件之后。