根據該鏈接:request - Node節點請求模塊Http.IncomingMessage不發射事件
的回調參數得到3個參數:
錯誤適用(通常從http.ClientRequest對象)一種 HTTP時.IncomingMessage對象第三是響應主體(字符串或 緩衝液,或者如果JSON選項被提供JSON對象)
代碼:
var r = require("request");
var options= {
url: "http://www.example.com/"
};
var callback = function (err, res, body) {
if (!err && res.statusCode == 200) {
res.on("data", function(chunk) {
console.log("DATA : "+chunk);
});
res.on("finish", function() {
console.log("FINISHED");
});
console.log(body);
}
};
r(options, callback);
但在上面的代碼中,只有console.log(body)
工作,事件發射器不。
此外,如果只有在整體響應是body的情況下才會調用回調函數,那麼當我無法對其進行流式處理時,將第二個參數設置爲http.IncomingMessage
(可讀流)有什麼意義。
你期望得到什麼數據?如果它只是從URL返回的HTML,那是'body'? – adeneo
我知道這是在身體。那麼爲什麼第二個參數是'http.IncomingMessage',其中'data'和'finish'事件沒有任何用處。爲什麼它不只是一個帶響應參數的普通對象? –