thu*_*inh 38 javascript node.js
我在我的服务器上安装了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)
我该如何解决这个问题?
谢谢!
Joh*_*der 50
我有这个问题,我认为这是一个端口问题,但事实证明这是一个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'));
});
Run Code Online (Sandbox Code Playgroud)
确保您的主机正在击中您的计算机.在任何情况下,@ miltonb建议的环回应始终有效:
app.set('host', '127.0.0.1');
Run Code Online (Sandbox Code Playgroud)
我认为你需要更多的上下文,比如你的一些代码.我猜你开始在网络服务器或套接字上听?基于这个假设,当我在测试服务器上运行基本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)
Run Code Online (Sandbox Code Playgroud)
尝试将[hostname]参数更改为localhost:
var http = require('http');
http.createServer( function ).listen(8000, '127.0.0.1');
Run Code Online (Sandbox Code Playgroud)