アプリを作成し、http://c9.io環境を使用して開発しています。これは、クライアント側アプリケーションがクエリを実行するためのいくつかの REST エンドポイントを提供する NodeJS アプリです。これまではすべて正常に動作していましたが、現在、ブラウザーから REST API に送信された 1 つの呼び出しに対して、2 つの要求が受信済みとして表示され、要求ハンドラーが 2 回呼び出されていることがわかります。これにより、1 つの要求に対する応答時間が遅くなりました。
Chrome 開発者ツールでは、送信されたリクエストは 1 つしか表示されませんが、app.use()
受信リクエストを Express でログに記録するために使用しており、リクエストごとに同じ 2 回出力されます。また、ハンドラーは 2 回呼び出されます。
これは毎回ではなく断続的に発生します。私は企業ネットワークの背後にいます。テストのために 1 日に多くのリクエストを送信しましたが、監視プログラムが疑わしいと判断してリクエストを送信している可能性はありますか? リクエストを処理するコードは編集していません。
編集: 提案どおりにハンドラーのコードを追加します。
app.get('/suggestions/:keyword', function(r, s) {
sug_db.retrieveSuggestions(r.params.keyword, function(data) {
s.writeHead(200, {'content-type': 'text/html'});
s.write(renderSugg({data: data}))
s.end();
});
});
app.get('/search/:query', function(r, s) {
esc_db.search(r.params.query, function(data) {
s.send(renderResults({query: r.params.query, results:data}));
});
});
ご覧のとおり、データベースからデータを取得し、結果を HTTP 応答として返すだけです。私が使用しているテンプレート エンジンは Pug (以前の Jade) です。