2016-08-24 47 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 
 
    
 
})