ホームページ > ウェブフロントエンド > jsチュートリアル > ノード Express フレームワークの res.send() と res.end() の簡単な分析

ノード Express フレームワークの res.send() と res.end() の簡単な分析

青灯夜游
リリース: 2022-01-27 18:17:28
転載
2179 人が閲覧しました

この記事では、node Express フレームワークについて説明し、Express の res.send() と res.end() について学びます。

ノード 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 つの方法の違いは何でしょうか。それぞれのアプリケーション シナリオは何ですか?これが今日私が明らかにしなければならないことです。

Express res.end()

定義

データ応答を必要とせずにすぐに終了できます。

このメソッドは実際にはノード コア、特に http.ServerResponse.Useresponse.end() メソッドから来ています:

ノード Express フレームワークの res.send() と res.end() の簡単な分析

##構文

res.end([data[, encoding]][, callback])
ログイン後にコピー

パラメータ分析:

    data |
  • エンコーディング <文字列>
  • コールバック <関数>

##詳細オブジェクトを

res.end()

メソッドに渡すと、エラーが発生します:

ノード Express フレームワークの res.send() と res.end() の簡単な分析Express の res.send()

定義HTTP 応答メッセージを要求側クライアントに送信します。

構文

res.send([body[,statusCode]])
ログイン後にコピー
body パラメータには、バッファ、オブジェクト、文字列、ブール値、または配列を指定できます。

さらに詳しく見るコードのデバッグを通じて、Express の

res.send()

メソッドが最終的に呼び出されることがわかります。 http.ServerResponse.Useresponse.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 === &amp;#39;HEAD&amp;#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 の res.end() メソッドと res.send() メソッドを使用する場合、通常は

    res.send( )

    メソッドを使用するため、Express が内部でデータを処理するため、応答データの形式を気にする必要はありません。 ~この記事は終わりです、読んでいただきありがとうございました!

    ノード関連の知識の詳細については、

    nodejs チュートリアル

    を参照してください。 !

    以上がノード Express フレームワークの res.send() と res.end() の簡単な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    関連ラベル:
    ソース:juejin.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    最新の問題
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート