2011-12-21 45 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