私は、ExpressJSアプリケーションで同じレスポンスオブジェクトを使用するために複数のレンダリングが必要な状況があります。 (基本的に1つのHTTPリクエストが複数のバックエンドリクエストをトリガします。これらのリクエストはすべて、完了したページにすぐに結果をレンダリングすることができます)問題は、それぞれのビューをレンダリングする必要があるということですres.write()
)、私が知る限り、res.render()
は応答が終了しないか、呼び出されるたびにヘッダーを書き込むことができません。ExpressJSを使用して同じレスポンスオブジェクトに複数回レンダリングする方法は?
私には何が欠けていますか?
どのように1回のHTTPリクエストに2回応答できますか? –
これは2回応答していません。複数の機能からページに出力をストリームできるようにしたいだけです。 HTTP要求の結果、応答の一部を生成する他のサービスへのいくつかのAPI呼び出しが行われます。すべてのAPI呼び出しが完了するまで、すべてのユーザーが応答してページを一度にレンダリングするのを待つのではなく、応答オブジェクトを「オープン」のままにしてビュー(より正確にはビューの一部)を書き出すことができます。 –
ああ、 'res.write'だけがあなたの唯一の選択肢になります。もちろん、 'res.render'を介してページの一部をロードし、その後AJAXを使って残りをロードするオプションもあります。 –