2015-09-06 69 views
-1

一个http请求返回给我一个不完整的字符串。Buffer.prototype.toString不打印超过500个字符

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

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

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

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

要了解更多关于流,读亚组的stream handbook

+1

它的工作原理。当我学习节点时,我没有注意这个主题。 我会读这本书。 谢谢你的好意。 –