中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

南丹县| 沙湾县| 聂荣县| 噶尔县| 大厂| 永顺县| 东丽区| 泾源县| 佛冈县| 闸北区| 宝兴县| 台安县| 林周县| 阳朔县| 手机| 岳西县| 通海县| 阜平县| 盘锦市| 惠水县| 库车县| 土默特右旗| 股票| 静乐县| 九台市| 博乐市| 中卫市| 自贡市| 华蓥市| 梅州市| 永定县| 南木林县| 通化县| 巨鹿县| 杂多县| 靖西县| 宁波市| 尚义县| 卢氏县| 赤峰市| 福清市|