日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本篇文章帶大家聊聊node Express框架,了解一下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.Use 的 response.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.Use 的 response.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.Use 的 response.end() 方法。

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


不同點

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

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

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


總結

Express 的 res.end() 和 res.send() 方法使用上,一般建議使用 res.send()方法即可,這樣就不需要關心響應數據的格式,因為 Express 內部對數據進行了處理。


分享到:
標簽:nodeExpress框架 Node.js
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定