第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

認(rèn)識(shí) Express 的 res.send() 和 res.end()

標(biāo)簽:
Node.js JavaScript

认识 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() 方法:

image-20220121021236372

语法

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

参数解析:

  • data <string> | <Buffer>
  • encoding <string>
  • callback <Function>

深入

如果给 res.end() 方法传入一个对象,会发生报错:

image-20220121012102733

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() 方法的相同点:

  1. 二者最终都是回归到 http.ServerResponse.Useresponse.end() 方法。
  2. 二者都会结束当前响应流程。

不同点

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

  1. 前者只能发送 string 或者 Buffer 类型,后者可以发送任何类型数据。
  2. 从语义来看,前者更适合没有任何响应数据的场景,而后者更适合于存在响应数据的场景。

总结

Express 的 res.end() 和 res.send() 方法使用上,一般建议使用 res.send()方法即可,这样就不需要关心响应数据的格式,因为 Express 内部对数据进行了处理。

~

~本文完,感谢阅读!

~

学习有趣的知识,结识有趣的朋友,塑造有趣的灵魂!

你来,怀揣期望,我有墨香相迎! 你归,无论得失,唯以余韵相赠!

知识与技能并重,内力和外功兼修,理论和实践两手都要抓、两手都要硬!

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消