Node.js HTTP响应stream

在Node.js中使用本地的http.get() ,我试图将HTTP响应传递给一个可以绑定dataend事件的stream。

我目前正在处理这个gzip数据,使用:

 http.get(url, function(res) { if (res.headers['content-encoding'] == 'gzip') { res.pipe(gunzip); gunzip.on('data', dataCallback); gunzip.on('end', endCallback); } }); 

Gunzip是一个stream,这只是工作。 我试图创buildstream(写入stream,然后读取stream)和pipe道响应,但一直没有太多的运气。 任何build议来复制这个相同的交易,对于非压缩内容?

来自HTTP请求的响应对象是可读stream的实例。 因此,您将收集data事件的data ,然后在end事件触发时使用它。

 var http = require('http'); var body = ''; http.get(url, function(res) { res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { // all data has been downloaded }); }); 

如果上面的例子中的body是可写的stream,那么readable.pipe(dest)基本上可以做同样的事情。