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

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

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本篇文章帶大家聊聊node Express框架,了解一下Express 中的 res.send() 和 res.end(),希望對(duì)大家有所幫助!


淺析node Express框架中的 res.send() 和 res.end()


在使用 Node.js 的服務(wù)端代碼中,如果使用的是 Express 框架,那么對(duì)于一個(gè)請(qǐng)求,常常會(huì)有兩種響應(yīng)方式:

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

那么這兩種方式究竟有何區(qū)別?各自的應(yīng)用場(chǎng)景分別是什么?這是我今天需要講清楚的。


Express 之 res.end()

定義

它可以在不需要任何數(shù)據(jù)的情況下快速結(jié)束響應(yīng)。

這個(gè)方法實(shí)際上來(lái)自 Node 核心,具體來(lái)說(shuō)是 http.ServerResponse.Use 的 response.end() 方法:


淺析node Express框架中的 res.send() 和 res.end()


語(yǔ)法

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

參數(shù)解析:

data <string> | <Buffer>

encoding <string>

callback <Function>

深入

如果給 res.end() 方法傳入一個(gè)對(duì)象,會(huì)發(fā)生報(bào)錯(cuò):

淺析node Express框架中的 res.send() 和 res.end()

Express 之 res.send()

定義

向請(qǐng)求客戶(hù)端發(fā)送 HTTP 響應(yīng)消息。

語(yǔ)法

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

body 參數(shù)可以是 Buffer、Object、String、Boolean 或 Array。

深入

通過(guò)代碼調(diào)試,我們可以發(fā)現(xiàn),Express 的 res.send() 方法最終調(diào)用的也是 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;
};

對(duì)比

相同點(diǎn)

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

二者最終都是回歸到 http.ServerResponse.Use 的 response.end() 方法。

二者都會(huì)結(jié)束當(dāng)前響應(yīng)流程。


不同點(diǎn)

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

前者只能發(fā)送 string 或者 Buffer 類(lèi)型,后者可以發(fā)送任何類(lèi)型數(shù)據(jù)。

從語(yǔ)義來(lái)看,前者更適合沒(méi)有任何響應(yīng)數(shù)據(jù)的場(chǎng)景,而后者更適合于存在響應(yīng)數(shù)據(jù)的場(chǎng)景。


總結(jié)

Express 的 res.end() 和 res.send() 方法使用上,一般建議使用 res.send()方法即可,這樣就不需要關(guān)心響應(yīng)數(shù)據(jù)的格式,因?yàn)?Express 內(nèi)部對(duì)數(shù)據(jù)進(jìn)行了處理。


分享到:
標(biāo)簽:nodeExpress框架 Node.js
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定