簡體   English   中英

NodeJS請求模塊 - http.IncomingMessage上的正文?

[英]NodeJS request module - body on http.IncomingMessage?

我正在查看節點的請求模塊,文檔說回調接受三個參數 - errorresponsehttp.IncomingMessage )和body

在發出請求時,我發現該主體也可用作response對象的屬性。
這可靠嗎? 我可以在回調中省略最后一個參數並使用response.body嗎?

response.body並不總是與body參數相同。 如果對響應請求任何處理(例如解壓縮),則body參數將是該處理的結果,但response.body可能不會反映該處理。 您應該使用response參數。 以下是文檔中的一個示例:

為了向后兼容,默認情況下不支持響應壓縮。 要接受gzip壓縮的響應,請將gzip選項設置為true。 請注意,通過請求傳遞的正文數據會在響應對象未修改時自動解壓縮,如果服務器發送壓縮響應,則會包含壓縮數據。

是的, body只是一個方便的response.body所以他們保證永遠是相同的。

您可以通過檢查源代碼來驗證這一點。

self.emit('complete', response, response.body)

在同一文件中的其他地方處理complete事件

self.on('error', self.callback.bind())
self.on('complete', self.callback.bind(self, null))

這僅適用於傳遞給回調的response 傳遞給響應事件response對象是標准的http.IncomingMessage ,因此沒有body屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM