express - catch请求失败错误

时间:2016-08-24 11:11:31

标签: javascript node.js express

我正在使用请求模块向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()返回的错误,并且只在没有错误时写入。

1 个答案:

答案 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
  
})