NodeJS - Error: listen EADDRNOTAVAIL: address not available
NodeJS - Error: listen EADDRNOTAVAIL: address not available
我正在 运行ning 一个应该托管在本地服务器上的 Node 应用程序。
目前,我只发送明文回复。
const http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {ContentType: 'text/plain'});
res.end("test");
});
当我收听本地主机时,一切正常,我可以从我的浏览器发送请求。
server.listen(3000, '127.0.0.1'); // works fine, on the same machine
但是,如果我尝试通过键入路由器的 IP 来侦听 LAN 网络上的端口,则会收到错误消息。
server.listen(3000, '192.168.0.1'); // causes an error
Error: listen EADDRNOTAVAIL: address not available 192.168.0.1:3
000
at Server.setupListenHandle [as _listen2] (net.js:1253:19)
at listenInCluster (net.js:1318:12)
at doListen (net.js:1451:7)
at process._tickCallback (internal/process/next_tick.js:63:1
9)
at Function.Module.runMain (internal/modules/cjs/loader.js:7
57:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1297:8)
at process._tickCallback (internal/process/next_tick.js:63:1
9)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
我已经用我的 public IP 地址试过了,但没有成功。
有什么方法可以监听 LAN 服务器上的端口,以便我可以从网络上的任何计算机发送请求?
另外,我稍后希望我的应用程序在任何 LAN 网络上的任何计算机上 运行。如何动态添加主机?
试试这个
server.listen(3000, '0.0.0.0');
您可以从其他机器访问您的节点应用程序
例如
你的局域网ip是192.168.0.101 那么你可以从其他机器浏览192.168.0.101:3000
正确的IP地址竟然是192.168.0.104。
应使用服务器计算机的 IP 地址,而不是路由器的 IP 地址。
我遇到了这个错误,问题是我连接了 VPN
小心你的IP。
有时它会改变。当我使用 Node 时,我必须检查 Shell 中的 ipconfig
...我希望它能帮助其他人遇到同样的问题...
我正在 运行ning 一个应该托管在本地服务器上的 Node 应用程序。 目前,我只发送明文回复。
const http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {ContentType: 'text/plain'});
res.end("test");
});
当我收听本地主机时,一切正常,我可以从我的浏览器发送请求。
server.listen(3000, '127.0.0.1'); // works fine, on the same machine
但是,如果我尝试通过键入路由器的 IP 来侦听 LAN 网络上的端口,则会收到错误消息。
server.listen(3000, '192.168.0.1'); // causes an error
Error: listen EADDRNOTAVAIL: address not available 192.168.0.1:3
000
at Server.setupListenHandle [as _listen2] (net.js:1253:19)
at listenInCluster (net.js:1318:12)
at doListen (net.js:1451:7)
at process._tickCallback (internal/process/next_tick.js:63:1
9)
at Function.Module.runMain (internal/modules/cjs/loader.js:7
57:11)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
Emitted 'error' event at:
at emitErrorNT (net.js:1297:8)
at process._tickCallback (internal/process/next_tick.js:63:1
9)
[... lines matching original stack trace ...]
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
我已经用我的 public IP 地址试过了,但没有成功。
有什么方法可以监听 LAN 服务器上的端口,以便我可以从网络上的任何计算机发送请求?
另外,我稍后希望我的应用程序在任何 LAN 网络上的任何计算机上 运行。如何动态添加主机?
试试这个
server.listen(3000, '0.0.0.0');
您可以从其他机器访问您的节点应用程序
例如
你的局域网ip是192.168.0.101 那么你可以从其他机器浏览192.168.0.101:3000
正确的IP地址竟然是192.168.0.104。
应使用服务器计算机的 IP 地址,而不是路由器的 IP 地址。
我遇到了这个错误,问题是我连接了 VPN
小心你的IP。
有时它会改变。当我使用 Node 时,我必须检查 Shell 中的 ipconfig
...我希望它能帮助其他人遇到同样的问题...