この記事では、node Express フレームワークについて説明し、Express の res.send() と res.end() について学びます。
Node.js
を使用するサーバー側のコードで、Express フレームワークを使用している場合は、リクエストに対して, 多くの場合、応答方法は 2 つあります:
// 方法1 app.get("/end", (req, res, next) =>{ res.end(xxx); }); // 方法2 app.get("/send", (req, res, next) =>{ res.send(xxx); });
それでは、これら 2 つの方法の違いは何でしょうか。それぞれのアプリケーション シナリオは何ですか?これが今日私が明らかにしなければならないことです。
定義
データ応答を必要とせずにすぐに終了できます。
このメソッドは実際にはノード コア、特に http.ServerResponse.Use
の response.end()
メソッドから来ています:
##構文
res.end([data[, encoding]][, callback])
##詳細オブジェクトを
res.end() メソッドに渡すと、エラーが発生します:
Express の res.send()
定義HTTP 応答メッセージを要求側クライアントに送信します。
構文res.send([body[,statusCode]])
さらに詳しく見るコードのデバッグを通じて、Express の
res.send() メソッドが最終的に呼び出されることがわかります。 http.ServerResponse.Use
の response.end()
メソッド: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">// node_modules/express/lib/response.js
res.send = function send(body) {
var chunk = body;
var encoding;
……
if (req.method === &#39;HEAD&#39;) {
// skip body for HEAD
this.end();
} else {
// respond
this.end(chunk, encoding);
}
return this;
};</pre><div class="contentsignin">ログイン後にコピー</div></div>Comparison<h2 data-id="heading-9"></h2>
<p>同じ点<strong><span style="font-size: 16px;"></span></strong>Express の res.end() メソッドと res.send() メソッドの類似点: </p>
<p></p>
<ul style="list-style-type: disc;">どちらも最終的には <li> に戻ります。 http.ServerResponse.Use<p> の <code>response.end()
メソッド。
違いExpress の res.end() メソッドと res.send() メソッドの違い:
メソッドを使用するため、Express が内部でデータを処理するため、応答データの形式を気にする必要はありません。 ~この記事は終わりです、読んでいただきありがとうございました!
ノード関連の知識の詳細については、
nodejs チュートリアル以上がノード Express フレームワークの res.send() と res.end() の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。