function redit (req, res, next) {
var session = req.session.user;
if (session) {
res.redirect('/home');
next();
}
else {
res.redirect('/');
next();
}
}
app.get('/', redit, function (req, res){
res.render('home0.ejs');
});
我对此中间件进行编码以检查是否存在req.session.user,如果有,则将用户重定向到home
,否则将重定向到/
。但是当调用这个中间件时,Chrome会告诉我Error 310 (net::ERR_TOO_MANY_REDIRECTS)'
,任何解决方案......?
答案 0 :(得分:2)
您错过了重定向后,匿名用户(带有虚假req.session.user
值)会在同一页面(/
)结束 - 所以他们的身份将由{{1}进行检查再次使用中间件......再次......因此,“太多的重定向”错误。
常见的解决方案是将所有匿名用户重定向到其他网关页面 - 该页面显然不应该检查redir
。