2012-02-09 8 views
8

Tengo el servidor http js simple del nodo.nodo js escuchar el error EADDRINUSE para el simple httpserver

var http = require("http"); 

http.createServer(function(request, response) { 
    response.writeHead(200, {"Content-Type": "text/plain"}); 
    response.write("Hello World"); 
    response.end(); 
}).listen(8888); 

Si me quedo

node basicserver.js 

me sale

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^
Error: listen EADDRINUSE 
    at errnoException (net.js:642:11) 
    at Array.0 (net.js:743:26) 
    at EventEmitter._tickCallback (node.js:192:40) 

he visto this puesto, pero ese puesto parece ser específica al servidor TCP y no del servidor http. ¿Alguien por favor ayuda?

Respuesta

22

El puerto que está escuchando ya está siendo escuchado por otro proceso. En este caso, tengo la sensación de que eres tú mismo. Puede hacer un ps aux | grep node y luego usar kill <pid> matar el proceso de su nodo. Además de eso, puedes probar otro puerto.

--Update--

En caso si usted quiere encontrar qué proceso está escuchando, puede utilizar netstat -lpn (-l es averiguar los puertos de escucha, -p es incluir el nombre del proceso y pid, -n es no resolver nombres de host, o de lo contrario será lento), para encontrar los procesos que están escuchando en diferentes puertos. Si hubo demasiados, puede hacer netstat -lnp | grep :8888.

También puede usar, fuser 8888/tcp, que le mostrará el proceso pid y también agregar -k matará el proceso, la forma más rápida.

Me di cuenta de que estos dos comandos solo funcionan en linux.

+0

Soy tan tonto. Gracias. – riship89

+0

En realidad, siendo honesto, tuve exactamente el mismo problema con algunos procesos de zombis secundarios. –

+0

FYI, el 'nestat -lnp | grep: 8888' example tiene un error tipográfico en 'netstat' – klamping

2

El mismo problema puede ocurrir cuando intenta ejecutar el servidor, pero no tiene privilegios de administrador.

6

Mi favorito para matar todos los experimentos en mi máquina ...

killall node 
0

también se topó con este tema con EADDRINUSE 127.0.0.1. Después de verificar los procesos de Nodo, cambié la ip del servidor a 'localhost'. Después de hacer esto comenzó de inmediato. Espero que esto ayude.

Cuestiones relacionadas