Node.js HTTP响应stream
在Node.js中使用本地的http.get()
,我试图将HTTP响应传递给一个可以绑定data
和end
事件的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)
基本上可以做同样的事情。