2011-12-21 99 views
3

我得到一個壓縮網頁內容塊,並希望它被接受,儘快解壓縮每個,所以我試圖做的(東西剝離了可讀性):如何在node.js中逐塊分割gunzip?

var decompress = function(string, callback) { 
    zlib.gunzip(string, callback); 
}; 

decompress(chunk, function(data) { 
    console.log(data); 
}); 

不過我m只會將null記錄到控制檯。我的節點版本是0.6.2,zlib是內置的。我應該如何解壓縮它?

回答

8

如果你想管內容,用gunzip,使用zlib#createGunzip()

http.get(options, function(res) { 
    var gunzip = zlib.createGunzip(); 
    res.pipe(gunzip); 
    gunzip.on('data', function() { 
    console.log(data); 
    }); 
}).on('error', function(e) { }); 
+1

貌似管呈流,我該怎麼辦,如果我有一個緩衝? – Fluffy 2011-12-22 09:40:51

+3

因爲你在你的問題中說過你正在獲取數據塊,我假設你正在用http模塊發出一個請求並獲取一個res對象。如果你正在做一些其他非流對象的方式,你可以調用'gunzip.write(data)' – fent 2011-12-22 10:11:16

+1

好吧,這是更好的工作。最後一個問題:你怎麼知道的?我一直在搜索這個東西,即使你嘗試「node js gunzip write」,最重要的結果是SO問題... – Fluffy 2011-12-22 10:26:23