【发布时间】:2015-10-20 23:02:23
【问题描述】:
根据此链接:request - Node
回调参数有 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) 有效,事件发射器无效。
另外,如果只有当整个响应的主体可用时才会调用回调,那么当我无法流式传输它时,将第二个参数设为 http.IncomingMessage(Readable Stream) 有什么意义。
【问题讨论】:
-
您希望获得什么数据?如果只是从 URL 返回的 HTML,那是在
body中? -
我知道那是在身体里。那么为什么第二个参数是
http.IncomingMessage与data和finish事件没有任何用处。为什么它不只是一个带有响应参数的普通对象?
标签: javascript node.js node-request