2017-07-29 51 views
0

有點背景,我自學Node.js,我在我的mac上創建了一個hello.js文件,並使用node hello.js運行它。我可以從localhost:port127.0.0.1:port訪問網頁。爲什麼連接到不同的端口會導致不同的錯誤Node.js

我的最終目標是能夠從其他機器訪問網頁。我瀏覽了很多SO頁面。我在我的app.listen()中加入了'0.0.0.0',但到目前爲止還是不成功,我相信我會在以後找出答案。我知道有很多關於如何從其他機器設備連接到本地主機的問題和重複,請不要混淆,因爲這不是我的問題!

在我搞清楚如何做的過程中,我很好奇爲什麼當我嘗試連接到不同的端口時,我從另一臺機器的chrome中得到不同的錯誤?

這是我hello.js:

const http = require('http'); 

http.createServer((request, response) => { 

    response.writeHead(200, { 
     'Content-Type': 'text/plain' 
    }); 
    response.write('Hello, My name is Oliver\n'); 
    response.end(); 

}).listen(1337, '0.0.0.0', function() { 
    console.log('Listening to port: ' + 1337); 
}); 

端口1337: 當我通過運行node hello.js enter image description here

使用端口1337,我可以連接到網頁罰款在我的Mac使用127.0.0.1:1337。 但是,當我試圖把它從我的其他機器(Windows)中使用Chrome連我得到

enter image description here

端口2701 現在,當我使用端口2701再次運行node hello.js enter image description here 再次嘗試連接它從我的使用127.0.0.1:2701我從鉻以下錯誤其他機器: enter image description here

端口1433 按照上述步驟,然後我得到這個錯誤:

enter image description here

我一點都沒有改變的代碼,但我當我切換不同的端口,我得到不同的錯誤。大約有連接到不同的充端口,Node.js的,例如一些職位: HTTPComponent Connect to different portNode js route request to different port

但這些職位沒有對爲什麼它會導致不同的錯誤觸摸。有人可以解釋這種行爲嗎?

編輯:我知道127.0.0.1是指我的本地主機,所以我將不得不使用我的Mac的真實IP地址。但是我的好奇心仍然存在,爲什麼連接到本地主機上的不同端口會導致不同的錯誤?

+0

當你從另一臺機器連接時你必須使用它的IP地址,'127.0.0.1'指localhost –

+0

gotcha我會更新我的問題。 –

回答

0

當你想從另一臺機器訪問你的服務器時,你應該使用它的真實IP地址。 127.0.0.1或localhost僅供本地使用。

E.g.您的Mac的IP爲123.456.789.123。通過本地呼叫,您可以使用127.0.0.1,localhost或123.456.789.123。 對於遠程呼叫,您始終使用123.456.789.123。

+0

啊我懷疑這可以幫助我解決從我的窗口機器連接問題。所以目前我連接我的Windows機器的本地主機,而不是我的Mac正確?那麼如何連接到本地主機上的不同端口會導致不同的錯誤? –

+0

嗨@PaveGatnar這裏是我的更新:我用'ifconfig | grep「inet」| grep -v 127.0.0.1'在我的終端上得到我的IP在我的Mac上是10.35.131.255。我試圖用'10.35.131.255:1337'再次嘗試從Windows連接到我的服務器,但是我收到錯誤「ERR_CONNECTION_TIMED_OUT」,說服務器花了很長時間迴應。我也嘗試使用'10.35.131.255:1337'在我的Mac本身上連接到它,然後出現錯誤ERR_NETWORK_ACESS_DENIED,表示您的Internet訪問被阻止。它爲什麼這樣表現? –

+0

它接縫你必須在Mac上配置防火牆設置。 –

相關問題