javascript - Nodejs サーバーで res.end() をいつ使用する必要がありますか?
伊谢尔伦
伊谢尔伦 2017-05-17 09:56:21
0
2
484

ユーザーが送信したデータを「/blog」ルートで処理する必要があるシナリオがあります。
3 つのデータを 3 つのキーに保存してコードを記述すると、次のようになります。

リーリー

見た目が良いかどうかは気にしません。 。 Promise でラップしたほうが良いように見えますが、接続を閉じるための最後のコールバックの res.end() に問題はありますか?このリクエストは長期間保留されるのでしょうか?こういうところにはどう対応すればいいのでしょうか?設定するだけで結果をユーザーに返す必要がないので、リクエストを受け取った後に res.end() で直接接続を閉じることはできますか?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全員に返信(2)
为情所困

それは、この HTTP リクエストの戻り結果をデータベース操作の結果と関連付けたいかどうか、およびユーザー対話設計がこの操作にかかる時間を許容できるかどうかによって異なります。

この「/blog」インターフェイスを設計するときは、HTTP が 200 を返すときの意味を明確に示す必要があります。ビジネス シナリオがバックエンドへのデータ配信のみを考慮し、バックエンドがデータベースに正しく保存されているかどうかを考慮しない場合は、HTTP リクエストを直接終了できます。エンド ユーザーにこの正確な送信結果を取得してもらいたい場合は、インタラクション レベルを考慮して適切なインタラクション効果を設計する必要があります。2 ~ 6 秒待つと、ユーザー エクスペリエンスは悪くなくなります (AJAX リクエスト シナリオを参照)。新しいページのシナリオ)まだ注意してください)。 Redis への 3 回の書き込みにはほとんど時間がかかりません。HTTP リクエスト自体のリンク遅延に比べれば大したことはありません。

特定のビジネスシナリオを詳細に分析する必要があります。特に時間のかかる操作が発生した場合は、フロントエンドで操作リクエストを送信した後に結果をローテーションすることも解決策です。

いいねを押す +0
曾经蜡笔没有小新

ページの表示とデータベースの操作結果に相関があるかどうかを確認します。相関関係がある場合は、データベース操作が完了するまで待ってから戻ることができます。非同期キューに直接返すこともでき、成功後に結果がプッシュされます。結局のところ、それはすべてあなたのニーズ次第です。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!