這篇文章帶大家聊聊node Express框架,了解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); });
那麼這兩種方式究竟有何不同?各自的應用場景分別是什麼?這是我今天需要講清楚的。
定義
#它可以在不需要任何資料的情況下快速結束響應。
這個方法其實是來自Node 核心,具體來說是http.ServerResponse.Use
的response.end()
方法:
#語法
res.end([data[, encoding]][, callback])
參數解析:
##如果給
res.end()方法傳入一個對象,會發生報錯:
Express 之res.send()定義
向請求客戶端發送HTTP 回應訊息。語法
res.send([body[,statusCode]])body 參數可以是 Buffer、Object、String、Boolean 或 Array。
深入
透過程式碼調試,我們可以發現,Express 的res.send()
方法最終調用的也是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; };
對比
二者最後都是回歸到 http.ServerResponse.Use
的response.end()
方法。#Express 的res.end() 和res.send() 方法的不同點:
以上是淺析node Express框架中的 res.send() 和 res.end()的詳細內容。更多資訊請關注PHP中文網其他相關文章!