【发布时间】:2023-03-10 21:40:01
【问题描述】:
我正在尝试使用request 模块保存图像下载。有了这个
request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png'));
它工作正常。 但是我希望在图像完全下载后能够做其他事情。 如何给 fs.createWriteStream 提供回调函数?
【问题讨论】:
我正在尝试使用request 模块保存图像下载。有了这个
request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png'));
它工作正常。 但是我希望在图像完全下载后能够做其他事情。 如何给 fs.createWriteStream 提供回调函数?
【问题讨论】:
你想提前创建流,然后在关闭事件上做一些事情。
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);
应该这样做。
【讨论】:
遇到此错误的人必须尝试在 fs.createWriteStream(1,2) 方法的第二个输入参数处添加一个函数,如下例所示,这也适用于 fs.unlink 方法。请注意,添加的这个新函数不会返回任何内容,但它是必需的,如果需要,您也可以添加一些返回的内容,而不是在我的情况下。
request('http://google.com/images/logos/ps_logo2.png').pipe(fs.createWriteStream('doodle.png'), function(err){});
【讨论】: