Buffer.prototype.toString不会打印超过500个字符

时间:2015-09-06 10:55:45

标签: node.js buffer

http请求返回一个不完整的字符串。

https.get(url, function(res) {
 res.on('data', function(data) {
   translationData = data.toString();
    resolve(translationData);
    })
  });

我不能超过500个字符。

我认为我的代码含糊不清,但是什么可能导致这个问题?

我尝试了很多方法,但都失败了。

我在How to display long messages in logcat中有类似的东西,但在nodeJS中没有比较。

1 个答案:

答案 0 :(得分:1)

您从http.get获得的响应对象是 Stream 。 只要收到 chunk 数据,就会调用'data'事件处理程序。您需要处理所有“数据”事件并收集其有效负载,直到您获得“结束”事件才能获得整个响应。

一种简单的方法是使用concat-stream module

var concat = require('concat-stream');
https.get(url, function(res) {
    res.pipe(concat(function(data) {
       // data is the entire response
    }));
}

要了解有关流的更多信息,请阅读substack的stream handbook