我在服务器中安装了Nginx和Node.js.
当我尝试运行我的node.js文件时,出现错误:
node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: listen EADDRNOTAVAIL at errnoException (net.js:614:11) at Array.0 (net.js:689:28) at EventEmitter._tickCallback (node.js:192:40)
如何解决此问题?
谢谢!
答案 0 :(得分:48)
我遇到了这个问题,我认为这是一个端口问题,但结果却是 IP 问题。
我的HOST
环境变量指向静态IP,我的节点服务器正在侦听该地址。在我的路由器回收的某个时刻,它开始为我的机器分配一个新IP,我开始收到你发布的错误。它是通过更改我的服务器正在侦听的地址来修复的。
我的配置:
app.set('port', process.env.PORT || 3000);
app.set('host', process.env.HOST || '0.0.0.0');
http.createServer(app).listen(app.get('port'), app.get('host'), function(){
console.log("Express server listening on port " + app.get('port'));
});
确保您的主机正在点击您的计算机。无论如何,@ miltonb建议的环回应该始终有效:
app.set('host', '127.0.0.1');
答案 1 :(得分:7)
我得到了同样的错误,然后我改变了端口并且工作了
答案 2 :(得分:5)
我认为你需要更多的上下文,比如你的一些代码。我猜你开始在网络服务器或套接字上听?基于这个假设,当我在测试服务器上运行基本Web服务器时,我会得到类似的东西,除非我使用localhost运行。
events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: listen EADDRNOTAVAIL
at errnoException (net.js:670:11)
at Array.0 (net.js:756:28)
at EventEmitter._tickCallback (node.js:190:38)
尝试将[hostname]参数更改为localhost:
var http = require('http');
http.createServer( function ).listen(8000, '127.0.0.1');
答案 3 :(得分:4)
该节点是否已在运行服务器?我收到了类似的错误,并在排除故障时发现了关闭上一个节点服务器解决了我的问题。
答案 4 :(得分:1)
大多数情况下,它将是IP地址或主机名。原因是,节点js将其作为启动服务器的关键项。如果存在冲突或错误的IP地址,则会出现此错误
错误:听EADDRNOTAVAIL
希望这会有所帮助。答案 5 :(得分:1)
对我来说,我有同样的错误,当我检查配置时,我发现host=127.0.0.0
会引发错误,因为它应该是127.0.0.1
而不是127.0.0.0
答案 6 :(得分:1)
对我来说,问题是我写的IP根本不存在:)通常在家里我有一个192.168.x.x
IP,重新启动后我有一个不同的地址...当我尝试时gulp serve
到我的应用-它具有使用旧IP的配置...。
一如既往127.0.0.1
可以使用,但是当您想通过其他设备验证您的网站时,您想要使用外部IP 192.168.x.x
...或类似的IP地址。
答案 7 :(得分:0)
var express = require('express');
var app = express();
app.set('port', process.env.PORT || 3000);
app.set('host', process.env.HOST || 'localhost');
app.listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('host') + ':' + app.get('port'));
});
对我有用。
它也是localhost
和你的本地ip调试的通用版,没有任何变化。
答案 8 :(得分:0)
这也会发生'ip addr add i:p:v:6'仍然处于不稳定状态(刚刚执行/ ing),接口是我认为还没完全准备好听还是添加新的ipv6地址
execSync睡眠2秒似乎允许听错误而不是错误:听EADDRNOTAVAIL。
这是我在Ubuntu上的NodeJS 7.4.0中的一个错误,因为在使用/监听连接之前的瞬间创建ipv4地址不会发生这种情况。
答案 9 :(得分:0)
例如检查IP ipconfig
的地址并添加任何端口3004
。
下面的代码终于对我有用。如果您想从网络中的其他设备访问此服务器。或者只需将本地主机ip设置为127.0.0.1
并从您的设备获得访问权限。
var server = require('http').createServer(app);
server.listen(3004, '192.168.x.x', function () {
console.log("Listening on port 3000!");
});
答案 10 :(得分:-1)
就我而言,我通过检查目录/ tasks / options
来修复它我发现connect.js文件的静态IP地址不正确。我只是把它改成了正确的,但它确实有效。