Node.js HTTP请求不会返回完整响应?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (28)

我使用Node的模块发出HTTP请求http,但是data,返回的块似乎并不满足完整的请求响应。这是我的代码:

var req = http.request(httpOptions, function(res) {
    res.setEncoding('utf8');
});

req.on('response', function (response) {
    response.on('data', function (chunk) {
        console.log(chunk);
        callback(null, JSON.parse(chunk));
    });
});

req.on('error', function(e) {
    callback(e);
    //callback(e.message);
});

req.end();

在结束请求之前是否有办法等待完整输出?

提问于
用户回答回答于

你也应该监听“结束”事件。

req.on('response', function (response) {

    var data = "";

    response.on('data', function (chunk) {
        console.log(chunk);
        data += chunk;
    });

    response.on('end', function(){
        callback(data);
    })

});

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励