一点背景,我自学了Node.js,我在我的mac上创建了一个hello.js
文件并使用node hello.js
运行它。我可以通过localhost:port
或127.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时
我可以使用127.0.0.1:1337
在我的Mac上正常连接页面。
但是,当我尝试使用Chrome从我的其他计算机(Windows)连接它时,我得到了
端口2701
现在当我再次使用端口2701运行node hello.js
时
再次尝试使用127.0.0.1:2701
从我的其他计算机连接它我从chrome获得以下错误:
端口1433 按照上述步骤,我收到此错误:
我根本没有改变代码,但是当我切换不同的端口时,我得到了不同的错误。有一些关于使用Node.js连接到不同端口的帖子,例如: HTTPComponent Connect to different port或 Node js route request to different port
但是这些帖子没有说明为什么会导致不同的错误。有人可以解释一下这种行为吗?
编辑:我意识到127.0.0.1
是指我的本地主机,因此我必须使用我的Mac的真实IP地址。然而,我的好奇心仍然存在,为什么连接到localhost上的不同端口会导致不同的错误?
答案 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。