2016-03-05 55 views
0

服務器發送503錯誤,但res.on('error')函數不打印它。https對錯誤功能沒有捕獲503錯誤

https.get(url, function(res){ 
      var body = ''; 

      res.on('data', function(chunk){ 
       body += chunk; 
      }); 

      res.on('error', function(err) { 
       console.log(err); 
      }); 

      res.on('end', function(){ 
       var response = JSON.parse(body); 
       console.log(response.stream); 

       }); 
     }); 

回答

0

HTTP錯誤狀態碼不會觸發error事件,因爲它們是更高級別的錯誤。 error事件的http.request()/https.request()會之類的東西突然斷開插座,畸形反應(例如壞塊傳輸編碼)等

你可以簡單地檢查res.statusCode如果您需要在503例的情況下執行不同的邏輯。