2016-08-24 45 views
0

我使用的请求模块发送请求到一个URL明确 - 捕捉请求失败的错误

var req = require('request'); 

接收到响应的时候,我还想写节点服务器上的文件,所以我管它来打包写入StreamStream

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

好像请求没有执行对( '错误')事件如你所料,看到的是https:// github上。 COM /请求/请求/问题/ 1779 –

回答

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