为什么连接到不同的端口导致不同的错误Node.js

时间:2017-07-29 18:28:47

标签: node.js

一点背景,我自学了Node.js,我在我的mac上创建了一个hello.js文件并使用node hello.js运行它。我可以通过localhost:port127.0.0.1:port

访问网页

我的最终目标是能够从其他计算机访问网页。我浏览了很多SO页面。我在'0.0.0.0'中添加了app.listen()但到目前为止还没有成功,我相信我会在以后找到。我知道如何从其他机器设备连接到localhost有很多问题和重复,请不要混淆,因为这不是我的问题!

在我弄清楚如何操作的过程中,我对 感到好奇,为什么当我尝试连接到不同的端口时,我从其他机器上获得了不同的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使用端口1337时 enter image description here

我可以使用127.0.0.1:1337在我的Mac上正常连接页面。 但是,当我尝试使用Chrome从我的其他计算机(Windows)连接它时,我得到了

enter image description here

端口2701 现在当我再次使用端口2701运行node hello.jsenter image description here 再次尝试使用127.0.0.1:2701从我的其他计算机连接它我从chrome获得以下错误: 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地址。然而,我的好奇心仍然存在,为什么连接到localhost上的不同端口会导致不同的错误?

1 个答案:

答案 0 :(得分: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。