图像下载后的回调功能

时间:2012-09-16 17:01:17

标签: node.js request fs

我正在尝试使用request模块保存图像下载。有了这个

request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png')); 

工作正常。 但是我希望在图像完全下载后能够做其他事情。 如何为fs.createWriteStream提供回调函数?

2 个答案:

答案 0 :(得分:42)

您希望提前创建流,然后在close事件上执行某些操作。

var picStream = fs.createWriteStream('doodle.png');
picStream.on('close', function() {
  console.log('file done');
});
request('http://google.com/images/logos/ps_logo2.png').pipe(picStream); 

这应该这样做。

答案 1 :(得分:0)

遇到此错误的人必须尝试在方法fs.createWriteStream(1,2)的第二个输入参数处添加函数,如下例所示,这也适用于fs.unlink方法。请注意,添加的这个新函数什么都不返回,但这是必要的,如果需要,您还可以添加一些要返回的内容,对于我来说不是这样。

request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png'), function(err){});