2016-06-09 35 views
0

我正在node.js工作,併發送json請求,當我發送請求時要麼檢查服務器連接或超時,如果超時,那麼我需要顯示錯誤無法建立與此URL的連接。如何檢查json請求中的連接失敗?

request({ 
      url: "http://example.com/service/register/", 
      method: "POST", 
      headers: { 
       "content-type": "application/json", 
      }, 
      body: spostData 
     }, 
     function(err1,result,registerresponse){ 

}); 
+0

請問什麼是請求?如果它來自模塊,請告訴我們。 – Salketer

+0

如果沒有定義,那麼它就是'err1',如果沒有錯誤發生,如果定義,然後檢查錯誤是什麼'if(err1)console.log(err1); – Molda

+0

該請求是不是在var err1,因爲我打的網址是無效的,那麼在這種情況下,網絡服務既不響應或給出錯誤 –

回答

0

主要有兩種類型的超時:連接超時讀超時

  • 如果在客戶端嘗試建立與遠程計算機的連接時發生超時,則會發生連接超時。

  • 只要服務器速度太慢而無法發回一部分響應,就會發生讀取超時。

您可以通過檢查err.code爲 'ETIMEDOUT' 值檢測超時錯誤。此外,您可以通過檢查err.connect屬性是否設置爲true來檢測超時是否爲連接超時。

request({ 
      url: "http://example.com/service/register/", 
      method: "POST", 
      headers: { 
       "content-type": "application/json", 
      }, 
      timeout: 1500, 
      body: spostData 
     }, 
     function(err,result,registerresponse){ 
     if(err){ 

      if(err.code === 'ETIMEDOUT'){ 

      if(err.connect === true) 
       console.log('connection timeout'); 
      else 
       console.log('read timeout'); 
      }   
     } 
});