2 つのミドルウェアがある場合、最初にヒットするものを追加し、リクエストを渡すミドルウェアを決定するにはどうすればよいでしょうか。リクエストは、ミドルウェアの 1 つにのみドロップまたは転送できます。両方にはできません。
app.use( function *(next) {
if (isAuthenticated)
*private middleware*
else
*use public middleware*
});
より具体的には、ユーザーがログインしているかどうかに応じて応答が変化
するホームページがあります(ここではトークンベースの認証を使用しています)。/
簡単にするために、リクエスト ユーザーがトークンを持っていない場合は、リクエストが有効なトークンを保持しているpublic.html
間のレスポンスです。
これは 1 つの関数内に実装するだけで十分簡単ですが、ルーターを分離したいと思います。これにより、コードがより管理しやすくなります。
それで、リクエストがどのミドルウェアルーターに正しく送られるかをどうにかして選択できるようにする必要がありますか? それを行う方法がわかりません。private.html
var publicR = new router();
publicR.get('/', function *(next) {
....public.html....
});
var privateR = new router();
privateR.get('/', function *(next) {
....private.html....
});
app.use(function(){
if(isAuthenticated)
...use privateR.routes();
else
...use publicR.routes();
});