在Node.js中侦听EADDRNOTAVAIL错误

我在我的服务器上安装了Nginx和Node.js。

当我尝试运行我的node.js文件,我得到一个错误:

 Node.js的:201
        扔e;  // process.nextTick错误,或第一次打勾时发生“错误”事件
               ^
错误:听EADDRNOTAVAIL
    在errnoException(net.js:614:11)
    在Array.0(net.js:689:28)
    在EventEmitter._tickCallback(node.js:192:40)

我该如何解决这个问题?

谢谢!

我有这个问题,我认为这是一个端口问题,但结果是知识产权问题。

我有我的HOST环境variables指向一个静态IP,我的节点服务器正在侦听该地址。 在我的路由器回收的某个时候,它开始分配我的机器一个新的IP,我开始得到你发布的错误。 它是通过更改我的服务器正在收听的地址来解决的。

我的configuration:

 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')); }); 

确保你的主机正在打你的机器。 无论如何,@ miltonbbuild议的回送应该始终工作:

 app.set('host', '127.0.0.1'); 

难道节点已经在运行服务器了吗? 我收到了类似的错误,并发现这个故障排除。 closures以前的节点服务器解决了我的问题。

我得到了同样的错误,然后我改变了港口,工作

我想你需要更多的上下文,像你的一些代码。 我猜你正在开始在networking服务器或套接字上听? 基于这个假设,当我在testing服务器上运行一个基本的Web服务器时,除非使用本地主机运行,否则我会得到类似的结果。

 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'); 

对我来说,我有同样的错误,当我检查我的configuration时,我发现host=127.0.0.0这引起的错误,因为它应该是127.0.0.1而不是127.0.0.0

大部分时间将是IP地址或主机名。 原因在于,节点js将其作为启动服务器的关键项目。 如果存在冲突或不正确的IP地址,则会出现此错误

错误:听EADDRNOTAVAIL

希望这可以帮助。

 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和本地IPdebugging没有任何改变。

这也会发生'ip addr add i:p:v:6'仍然在limbo或什么东西(刚刚执行/ ing),并且我认为接口不完全准备好仍然添加新的ipv6地址。

execSync睡眠2秒似乎允许听错误错误:听EADDRNOTAVAIL。

这真的是我在Ubuntu的NodeJS 7.4.0中的一个错误,因为在使用/ listen连接之前的瞬间,ipv4地址的创build不会发生。