javascript - Node 请求模块 Http.IncomingMessage 不发出事件

标签 javascript node.js node-request

根据此链接:request - Node

The callback argument gets 3 arguments:

An error when applicable (usually from http.ClientRequest object) An http.IncomingMessage object The third is the response body (String or Buffer, or JSON object if the json option is supplied)

代码:

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) 时,有什么意义流式传输。

最佳答案

当您传递这样的回调时,request 会为您缓冲整个响应,这就是 body 中可用的内容。因此,这意味着您不会在 res 上看到 data 和此类事件,因为它们已由 request 处理.

关于javascript - Node 请求模块 Http.IncomingMessage 不发出事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33239603/

相关文章:

javascript - 使用 CSS 变换缩放 <div> 容器

javascript - 如何使用 d3.js 通过鼠标悬停显示 XY 图表的 x 和 y 坐标

javascript - 如何使用 node.js 查看 phantomjs 子进程的标准输出?

javascript - 如何控制 NPM 在哪里找到 server.js?

node.js - 使用 node-request 和 fs Promified 下载图像,在 Node.js 中没有管道

javascript - 如何在 JavaScript 中将 Date 对象保存在不同的时区

javascript - 在 Node.JS 中禁用日志记录

javascript - 在 Gulp/BrowserSync 中启用 Cors

node.js - 使用 jwt-web token 和请求使用远程 api

javascript - 从请求模块收到的正文是否包含计算的 css?