我正在使用请求模块向URL发送请求
var req = require('request');
收到响应时,我想在节点服务器上写这个文件,所以我将它传递给crateWriteStream
req.get(myUrl)
.on('error', function(err) {
console.log('there is an error');
})
.pipe(fs.createWriteStream('userdir/abc.png'));
如果req.get没有返回错误,这可以正常工作。如果req.get失败了,我想不在本地编写文件,而是做其他事情。
我为此引入了.on(' error' ..)但是on(' error')代码永远不会被执行,而.pipe会尝试编写不存在的文件
如何捕获req.get()返回的错误,并且只在没有错误时写入。
答案 0 :(得分:0)
我认为您正在使用流,但通常您可以使用回调来接收所有信息,然后检查是否有任何错误。
我个人会这样做:
var req = require('request');
req.get(myUrl, function (error, response, body) {
if (error || response.statusCode != 200) {
console.log(error) // Do something with your error
}
// If no errors, this code will be executed
// Write in file
})