久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

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

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

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

      在使用 Node.js 的服務(wù)端代碼中,如果使用的是 Express 框架,那么對于一個請求,常常會有兩種響應(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)用場景分別是什么?這是我今天需要講清楚的。

      Express 之 res.end()

      定義

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

      這個方法實際上來自 Node 核心,具體來說是 http.ServerResponse.Useresponse.end() 方法:

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

      語法

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

      參數(shù)解析:

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

      深入

      如果給 res.end() 方法傳入一個對象,會發(fā)生報錯:

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

      Express 之 res.send()

      定義

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

      語法

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

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

      深入

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

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

      不同點

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

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

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

      總結(jié)

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

      ~本文完,感謝閱讀!

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號