2013-06-30 78 views
0

我成功地在使用http.get的node.js中編寫了應用程序。問題是,如果頁面不存在,它會產生一個終止應用程序的錯誤。有什麼辦法如何聲明超時。超時後,它應該停止等待響應,並讓應用程序繼續(如果同步寫入) 感謝您的所有建議...Node.js http.get 404殺死應用程序

+0

通過給予'。對處理錯誤( '錯誤',函數(E){});'請參閱http: //nodejs.org/api/http.html#http_http_get_options_callback – user568109

回答

0

我在迴應,認爲你正試圖通過http.get檢索信息。

  1. 您可以使用響應狀態碼查看驗證。

    http.get(url, function(res) { 
        if (res.statusCode !== 200) { 
         Your custom handler 
        } else { 
         var body = ''; 
    
         res.on('data', function(chunk) { 
          body += chunk; 
         }); 
    
         res.on('end', function() { 
          console.log(body); 
         }); 
        } 
    }).on('error', function(e) { 
    console.log("error: ", e); 
    }); 
    

    完全實現的例子可以發現她https://gist.github.com/pasupulaphani/9630789

  2. 您可以設置超時併發出錯誤/中止如果請求的時間太長,但這在應用邏輯來完成。

    找到一個更好的/複雜的解決方案,以處理其他後超時: https://stackoverflow.com/a/12815321/2073176