2014-04-16 27 views
-1

我和Node一樣新,當我試圖運行我的第一個簡單節點應用程序,它使http連接到www.google.com主機。雖然我嘗試了一些在之前的線程上提出的解決方案,但沒有任何東西真的幫助過。雖然下面的錯誤並不是罕見的情況,但需要有人告訴我什麼是我的設置/環境丟失。非常感謝您的快速回復。NodeJsApp - 無法建立成功的http連接

源代碼 - test.js -

var http = require('http'); 
var options = { host: 'www.google.com'}; 
http.get(options, function(err, res) { 
console.log("GOT ERR?", err); 
console.log("GOT RES?", res);}); 

響應 - - 如下簡單 我得到下面的錯誤。我真的需要解決這個錯誤,因爲我需要從我的nodeApp中從github中抽出一些統計信息。

events.js:72 
throw er; // Unhandled 'error' event 
     ^
Error: getaddrinfo ENOTFOUND 
at errnoException (dns.js:37:11) 
at Object.onanswer [as oncomplete] (dns.js:124:16) 
+1

DNS查找失敗。找出爲什麼。 – josh3736

+0

喬希,不知道你是否指示我到另一個可能有問題修復的位置。如果您在http.get調用過程中遇到錯誤「getaddrinfo ENOTFOUND」的根本原因,請告訴我。 – user3537627

回答

0

您的回撥錯誤。嘗試編寫代碼如下:

var http = require('http'); 
var options = { host: 'www.google.com'}; 

// notice that the callback only receives a res parameter 
// errors are handled on an event below 
var req = http.get(options, function(res) { 
    console.log("Got response: " + res.statusCode); 
}); 

// handle errors 
req.on('error', function(e) { 
    console.log("Got error: " + e.message); 
}); 

這裏是http.get的文檔:http://nodejs.org/api/http.html#http_http_get_options_callback

,你所看到的錯誤(ER扔//未處理的「錯誤」事件),是因爲你沒有錯誤事件的偶數處理程序。注意我的代碼中的req.on('error')來解決這個問題。

+0

這完全是真的,但仍然沒有解決錯誤的實際原因:DNS查找失敗。 – josh3736

+0

感謝您的快速回復。通過修改代碼段,我得到了下面的錯誤:getaddrinfo ENOTFOUND。真的需要幫助解決這個問題。 – user3537627

+0

Hector,謝謝你的回覆。你知道是什麼導致這個getaddrinfo ENOTFOUND問題?這是這裏的核心問題。 – user3537627