根据该链接: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'事件没有任何用处。为什么它不只是一个带响应参数的普通对象? –