J'ai un serveur simple qui fonctionne en node.js en utilisant connect :
var server = require('connect').createServer();
//actions...
server.listen(3000);
Dans mon code, j'ai des gestionnaires réels, mais c'est l'idée de base. Le problème que je rencontre est le suivant
EADDRINUSE, Address already in use
Je reçois cette erreur lorsque je relance mon application après qu'elle se soit écrasée ou qu'elle ait eu des erreurs. Puisque je n'ouvre pas une nouvelle instance de terminal, je ferme le processus avec ctr + z
.
Je suis presque certain que tout ce que j'ai à faire est de fermer le serveur ou la connexion. J'ai essayé d'appeler server.close()
en process.on('exit', ...);
sans succès.
47 votes
En fait, au lieu de
Ctrl + z
vous devez utiliserCtrl + c
qui fermera le programme correctement en envoyant SIGQUIT :) Voir le wiki pour plus de détails :)1 votes
Vous voulez dire SIGINT. SIGQUIT est dû à `ctrl + ``.
0 votes
Utilice
server.close()
pour les serveurs précédents83 votes
Essayez
pkill nodejs
opkill node
si vous êtes sur un système d'exploitation de type UNIX2 votes
J'ai eu un problème similaire et j'ai trouvé ce paquet qui vous permet de sortir proprement lorsque vous faites CTRL+C : npmjs.com/package/exit-hook
1 votes
1. Il semblerait qu'il y ait un identifiant de processus mort ou en suspens accroché au port, ce qui fait que le service basé sur le nœud ne démarre pas et envoie l'erreur PORT IN USE (ERROR ADDRESS IN USE) 2. Nous essayons de trouver comment libérer le port 10000 sans redémarrer le serveur.
0 votes
J'ai eu une sorte de problème similaire, quel que soit le port que j'ai défini, il montrait le port déjà utilisé, un simple redémarrage de votre bureau/ordinateur a résolu mon problème, j'espère que cela aidera quelqu'un.
1 votes
Redémarrer votre ordinateur est une mauvaise solution.
0 votes
Comme l'a dit @nacho4d, vous devriez utiliser
ctrl + c
pour fermer le programme. Mais si vous avez déjà faitctrl + z
vous pouvez utiliserfg
pour se concentrer à nouveau sur le programme, ou utilisezbg
pour le laisser reprendre en arrière-plan. Voici une meilleure explication : superuser.com/a/1690570 votes
@Gerard bien, ça a marché comme un charme.