2012-12-23 2 views
0
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'); 

}); 

I 코드이 미들웨어 확인합니다. 하지만이 미들웨어가 호출되면 Chrome은 내게 Error 310 (net::ERR_TOO_MANY_REDIRECTS)', 모든 솔루션을 말합니다 ...?익스프레스와 문제 및 미들웨어

답변

2

는 동일한 (/) 페이지에서 종료됩니다 후 (falsy req.session.user 값) 익명의 사용자를 리디렉션 사실을 그리워 - 그래서 자신의 정체성을 다시 ... 다시 redir 미들웨어에 의해 확인됩니다 ... 그리고 다시. 따라서 '너무 많은 리디렉션'오류.

일반적인 해결책은 모든 익명 사용자를 다른 게이트웨이 페이지로 리디렉션하는 것이고 그 페이지는 분명히 session.user을 확인하면 안됩니다.