2012-05-30 34 views
29

Instalé Nginx y Node.js en mi servidor.escuchar el error EADDRNOTAVAIL en Node.js

Cuando intento ejecutar mi archivo de Node.js, me sale un error:

 
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) 

¿Cómo puedo solucionar este problema?

Gracias!

+0

¿Qué puerto es la configuración de su archivo de nodo para escuchar? – srquinn

Respuesta

3

Creo que necesitas un poco más de contexto como parte de tu código. Supongo que estás empezando a escuchar en un servidor web o en un socket. De acuerdo con esa suposición, obtengo algo similar cuando ejecuto un servidor web básico en mi servidor de prueba, a menos que ejecute el uso de 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) 

trate de cambiar el parámetro [nombre de host] a localhost:

var http = require('http'); 
http.createServer(function).listen(8000, '127.0.0.1'); 
4

Podría ser que el nodo ya estaba corriendo un servidor? Recibí un error similar y lo encontré al solucionar problemas. Cerrar el servidor de nodo anterior resolvió mi problema.

+1

Veo que esta fue su primera respuesta a una pregunta, por lo que no contó con el representante para publicar esto como comentario, pero en el futuro, es posible que desee considerar publicar esto como un comentario. Se supone que las respuestas son una solución al problema de la que estás bastante seguro de que resolverán el problema. – Fluffeh

+1

Sí, ese fue de hecho el caso. Y sí, tienes razón :) – jonrh

5

que estaba recibiendo el mismo error, y luego cambié el puerto y trabajé

+0

Recibí el mismo error y fue debido al hecho de que tenía la aplicación Ruby on Rails ejecutándose en localhost: 3000. Detener la otra aplicación o cambiar el puerto resuelve el problema. –

36

tuve este problema, y ​​pensé que era una cuestión puerto, pero resultó ser un problema IP .

Tenía mi variable de entorno HOST apuntando a una IP estática, y mi servidor de Nodo estaba escuchando esa dirección. En algún momento, cuando mi enrutador se recicló, comenzó a asignarle a mi máquina una nueva IP y comencé a recibir el error que publicó. Fue arreglado al cambiar la dirección que mi servidor estaba escuchando.

Mi config:

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

Asegúrese de que su anfitrión está afectando a su máquina. En cualquier caso, el bucle de retorno, como @miltonb sugirió, debería siempre funciona:

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

Mi cable de ethernet se perdió, por lo tanto, tenía una IP diferente (WiFi). ¡Fijo! – Nick

1

mayor parte del tiempo sería la dirección IP o el nombre de host. La razón es que el nodo js lo toma como el elemento clave para iniciar el servidor. Si hay un conflicto o la dirección IP incorrecta, cunas con este error

error: escuchar EADDRNOTAVAIL

esperanza esto ayuda.

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

trabaja para mí.
También es genérico para depurar por localhost y su ip local sin ningún cambio.

1

Para mí, tuve el mismo error, y cuando puedo comprobar la configuración de mi, me encontré con que host=127.0.0.0 que eleva error porque debe ser 127.0.0.1 en lugar de 127.0.0.0

0

Esto también ocurrirá mientras 'addr add ip i: p: v: 6 'todavía está en el limbo o algo así (solo se ejecuta/ing), y la interfaz es, supongo, que no está totalmente preparada para escuchar y aún así agregar la nueva dirección ipv6.

Una suspensión execSync durante 2 segundos parece permitir escuchar no error con Error: escuche EADDRNOTAVAIL.

Es realmente un error, creo que en NodeJS 7.4.0 en Ubuntu porque esto no ocurre con la creación de direcciones ipv4 en el instante antes de la conexión de uso/escucha.

0

En mi caso, me fijo marcando el directorio/tareas/opciones

encontré archivo connect.js que tenía la dirección IP estática que era incorrecta. Lo cambié al correcto y funcionó.

Cuestiones relacionadas