91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node Express框架中的res.send()和res.end()有什么區別

發布時間:2022-02-14 18:18:11 來源:億速云 閱讀:556 作者:iii 欄目:web開發

本篇內容主要講解“node Express框架中的res.send()和res.end()有什么區別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“node Express框架中的res.send()和res.end()有什么區別”吧!

node Express框架中的res.send()和res.end()有什么區別

在使用 Node.js 的服務端代碼中,如果使用的是 Express 框架,那么對于一個請求,常常會有兩種響應方式:

// 方法1
app.get("/end", (req, res, next) =>{
    res.end(xxx);
});
// 方法2
app.get("/send", (req, res, next) =>{
    res.send(xxx);
});

那么這兩種方式究竟有何區別?各自的應用場景分別是什么?這是我今天需要講清楚的。

Express 之 res.end()

定義

它可以在不需要任何數據的情況下快速結束響應。

這個方法實際上來自 Node 核心,具體來說是 http.ServerResponse.Useresponse.end() 方法:

node Express框架中的res.send()和res.end()有什么區別

語法

res.end([data[, encoding]][, callback])

參數解析:

  • data <string> | <Buffer>

  • encoding <string>

  • callback <Function>

深入

如果給 res.end() 方法傳入一個對象,會發生報錯:

node Express框架中的res.send()和res.end()有什么區別

Express 之 res.send()

定義

向請求客戶端發送 HTTP 響應消息。

語法

res.send([body[,statusCode]])

body 參數可以是 Buffer、Object、String、Boolean 或 Array。

深入

通過代碼調試,我們可以發現,Express 的 res.send() 方法最終調用的也是 http.ServerResponse.Useresponse.end() 方法:

// node_modules/express/lib/response.js
res.send = function send(body) {
  var chunk = body;
  var encoding;
  ……
  if (req.method === 'HEAD') {
    // skip body for HEAD
    this.end();
  } else {
    // respond
    this.end(chunk, encoding);
  }
  return this;
};

對比

相同點

Express 的 res.end() 和 res.send() 方法的相同點:

  • 二者最終都是回歸到  http.ServerResponse.Useresponse.end() 方法。

  • 二者都會結束當前響應流程。

不同點

Express 的 res.end() 和 res.send() 方法的不同點:

  • 前者只能發送 string 或者 Buffer 類型,后者可以發送任何類型數據。

  • 從語義來看,前者更適合沒有任何響應數據的場景,而后者更適合于存在響應數據的場景。

到此,相信大家對“node Express框架中的res.send()和res.end()有什么區別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临西县| 沂南县| 达孜县| 东丰县| 兴化市| 探索| 扶绥县| 安阳市| 阿瓦提县| 文登市| 宣威市| 营口市| 宁化县| 米脂县| 静乐县| 云和县| 义马市| 西充县| 习水县| 南充市| 普格县| 阳江市| 新丰县| 饶平县| 虎林市| 临西县| 高台县| 汉源县| 高邮市| 同仁县| 垫江县| 镇赉县| 沧源| 会东县| 巴林右旗| 迁安市| 桃源县| 普兰店市| 柳州市| 河北区| 沅陵县|