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');

}); 

このミドルウェアをコーディングして、req.session.user があるかどうかを確認します。ある場合、ユーザーは にリダイレクトされhome、そうでない場合は にリダイレクトされ/ます。しかし、このミドルウェアが呼び出されると、Chrome は私Error 310 (net::ERR_TOO_MANY_REDIRECTS)'に、解決策はありますか?

4

1 に答える 1

2

匿名ユーザー (偽の値を持つ) をリダイレクトした後req.session.user、同じ ( /) ページにたどり着くという事実を見逃していredirます。したがって、「TOO MANY REDIRECTS」エラーが発生します。

一般的な解決策は、すべての匿名者を他のゲートウェイ ページにリダイレクトすることです。そのページは明らかにチェックすべきではありませんsession.user

于 2012-12-23T16:16:55.640 に答える