node.js写入http响应stream
我通过http获取一些二进制数据。 我的代码如下所示:
var writeStream = fs.createWriteStream(fileName); request(url, function(err, res) { res.socket.pipe(writeStream); });
现在输出文件被创build,但文件大小为0. url是正确的,但我用wgetvalidation。
在此先感谢和最好的问候
http.request
的callback只提供一个参数,它是对请求响应的引用。 尝试
http.request(url, function(res) { res.pipe(writeStream); });
另外请注意, ClientResponse
实现ReadableStream
,所以你应该使用.pipe
而不是.socket.pipe
。
我假设这里的request
来自mikeal的请求库,而不是http.request的一个实例。 在这种情况下,你可以简单地做request(url).pipe(writeStream);
记住,为了debugging的目的,你总是可以pipe道到process.stdout
。
var writeStream = fs.createReadStream(fileName); request(url, function(err, res) { writeStream.pipe(res); writeStream.on('end', function() { //res.end({"status":"Completed"}); }); });