0

私のアプリは、最初に (そして 1 回) いくつかのアクションを実行する必要があり、それからリクエストの処理を開始して他のアクションを実行する必要があります。最初のアクションと一連のハンドラーを取得するミドルウェアを探しています。最初にアクションを呼び出す必要があり、それが完了したときにのみ、最初のアクションを再度呼び出すことなくすべてのハンドラーを呼び出します。

編集:私の最初のアクションにはしばらく時間がかかるとします。最初のアクションのコールバックで app.get ハンドラーを登録できますが、最初のアクションが完了する前に到着した要求はすべて失われます。代わりに、最初のアクションが完了するまでリクエストをキューに保存し、保留中のリクエストでハンドラーを呼び出します。その後、ミドルウェア自体を削除して、リクエスト ハンドラだけが新しいリクエストを処理するようにします。

そんなミドルウェアをご存知ですか?

ありがとう、リー

4

2 に答える 2

0

ええと...私があなたを正しく理解したかどうかはわかりませんが...

var done = false;
function myFunc () {
   if (done==true)break;
   //your code
   console.log('First');
   //your code
   done=true;
}

app.get('/desk/settings', myFunc, function(req, res) { 
   console.log('Second');
});

Reuest -> Middleware myFunc -> リクエストコード。

あなたが探しているものではありませんか?

于 2012-10-22T12:13:18.420 に答える
0

次のように独自のミドルウェアを作成できます。

app.use(function(req, res, next) {
  console.log('first');
  if (firstIsReady) {
    next();
  } else {
    res.redirect('/error')
  }
})

の前に置くようにしてくださいapp.router。それはあなたが探しているものですか?

于 2012-10-22T13:32:30.690 に答える