2015-09-06 100 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

它的工作原理。當我學習節點時,我沒有注意這個主題。 我會讀這本書。 謝謝你的好意。 –