1

passport-localを使用している場合に、(データベースの例)エラーでcutomページにリダイレクトし、メッセージを表示する方法。コードは次のとおりです。

passport.use(new LocalStrategy({ 
  passReqToCallback: true 
  }, function( req, username, password, done ) {
    done({error:'mycustomerrormessage'});
  }
));

ルーティングは次のようになります。

app.post('/auth/local', passport.authenticate('local', { 
    successRedirect: '/', 
    failureRedirect: '/', 
    failureFlash: true 
}));

エラーが発生すると、URLは残り/auth/local、厄介な[object Object]内容になります。

電話したら

done( null, false, { message: "error message"})

パスポートがにリダイレクトするよりも、メッセージを表示/できますが、最初のnotパラメーターを使用して関数flashを呼び出し、そのエラーで何かを行う場合に、リダイレクトを設定するにはどうすればよいですか?verifynull

4

1 に答える 1

0

明示的なドキュメントに基づいて、次のようにエラー処理ミドルウェアを構成できます。

app.use(function(err, req, res, next){
  console.error(err.stack);
  res.send(500, 'Something broke!');
});

4 つのパラメーターの署名は、これがエラー処理の定義であることを示しています。

http://expressjs.com/guide.html#error-handlingを参照してください

于 2013-05-04T02:40:03.727 に答える