J'ai créé l'application expressjs en utilisant les commandes suivantes:
express -e folderName
npm install ejs --save
npm install
Lorsque j'exécute l'application avec:, node app.js
j'ai les erreurs suivantes:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Comment le réparer?
Réponses:
Vous aviez exécuté un autre serveur utilisant le même port comme 8080.
Peut-être que vous avez exécuté
node app
dans un autre shell, fermez-le et relancez-le.Vous pouvez vérifier le PORT no. est disponible ou n'utilise pas
Vous pouvez également utiliser lsof :
lsof -i :<port no>
la source
rails server
...: |Nous obtenons une erreur similaire lorsque nous exécutons parfois notre application express. Nous devons suivre la même chose dans ce cas. Nous devons vérifier s'il fonctionne dans n'importe quel terminal. Si vous souhaitez rechercher et tuer le processus, procédez comme suit:
OU
Utilisez une seule commande pour fermer tous les processus de noeud en cours d'exécution.
ps aux | awk '/node/{print $2}' | xargs kill -9
la source
ps aux | grep node | awk '{print $2}' | xargs kill -9
killall -r node
(sous linux)Une instance est probablement toujours en cours d'exécution. Cela résoudra le problème.
Mise à jour: cette commande ne fonctionnera que sur Linux / Ubuntu et Mac.
la source
Si vous êtes sous Linux, ce problème peut également survenir si Nodejs ne s'exécute pas en tant que root.
Changez de ceci:
Pour ça:
Cela m'est juste arrivé et aucune des autres suggestions ici n'a résolu le problème. Heureusement, je me suis souvenu que le script fonctionnait l'autre jour lors de l'exécution en tant que root. J'espère que cela aide quelqu'un!
Avertissement: ce n'est probablement pas la meilleure solution pour un environnement de production. Le démarrage de votre service en tant que root peut introduire des failles de sécurité sur votre serveur / application. Dans mon cas, c'était une solution pour un service local, mais j'encouragerais les autres à passer plus de temps à essayer d'isoler la cause.
la source
Cela est dû au fait que le port que vous utilisez pour exécuter le script est déjà utilisé. Vous devez arrêter tous les autres nœuds qui utilisent ce message. pour cela, vous pouvez vérifier tous les nœuds par
OU pour le processus de nœud uniquement utiliser
ps -ef | grep node
Cela vous donnera la liste de tous les processus de nœud avec l'idpour tuer tous les processus de nœud
sudo killall -9 node
Ou pour l'identifiant spécifique
sudo kill -9 id
la source
J'ai corrigé le bogue en changeant le port qui était
app.set('port', process.env.PORT || 3000);<br>
et changé en:
app.set('port', process.env.PORT || 8080);<br>
la source
Le port Node tente d'utiliser peut déjà être utilisé par un autre programme. Dans mon cas, c'était ntop , que j'avais récemment installé. J'ai dû ouvrir http: // localhost: 3000 / dans un navigateur pour le réaliser. Une autre façon de trouver le processus est donnée ici .
la source
Si vous souhaitez utiliser le même numéro de port, saisissez
kill %
le terminal, ce qui tue le processus d'arrière-plan actuel et libère le port pour une utilisation ultérieure.la source
cela signifie que votre fichier est en cours d'exécution maintenant. entrez simplement le code ci-dessous et réessayez:
la source
En fait, les touches Ctrl + C ne libèrent pas le port utilisé par le processus de nœud. Il y a donc cette erreur. La résolution du problème utilisait l'extrait de code suivant dans server.js:
process.on('SIGINT', function() { console.log( "\nGracefully shutting down from SIGINT (Ctrl-C)" ); // some other closing procedures go here process.exit(1); });
Cela a fonctionné pour moi.
Vous pouvez également rechercher d'autres solutions mentionnées à l' arrêt progressif dans NodeJS
la source
Fermez tous les autres serveurs de nœuds en cours d'exécution, même s'ils se trouvent dans d'autres fenêtres de terminal ou sur des ports différents. Cela devrait régler le problème.
la source
Si vous avez essayé de tuer toutes les instances de nœuds et autres services à l'écoute sur 3000 (la valeur par défaut utilisée par la configuration du squelette express) en vain, vous devez vous assurer que votre environnement ne définit pas «port» comme quelque chose d'inattendu. Sinon, vous obtiendrez probablement la même erreur. Dans le fichier app.js du squelette express, vous remarquerez la ligne 15:
app.set('port', process.env.PORT || 3000);
la source
Pour résoudre ce problème, arrêtez ou fermez le serveur que vous exécutez. Si vous utilisez Eclipse IDE, suivez ceci,
Exécuter> Déboguer
Cliquez avec le bouton droit sur le processus en cours et cliquez sur Terminer .
la source
events.js: 183 lanceur; // Evénement "erreur" non géré
J'ai aussi eu le même genre de problème et essayé de nombreuses façons, mais j'ai finalement obtenu ceci, cela fonctionne bien:
npm install ws@3.3.2 --save-dev --save-exact
Reportez-vous à ce lien pour plus de précisions https://github.com/ionic-team/ionic-cli/issues/2922
la source
Raison de cette erreur
Solution simple et rapide
Sous Linux OS, par exemple, vous avez spécifié 3000 comme port
lsof -i :3000
. Si un processus est déjà en cours d'exécution sur le port 3000, vous verrez cette impression sur la consoleCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 16615 aegon 13u IPv6 183768 0t0 TCP *:3000 (LISTEN)
Copiez le PID (ID de processus) de la sortie
Exécuter
sudo kill -9 16615
(vous devez mettre PID après -9)la source
Dans mon cas, j'ai dû courir
vagrant reload
aussi. Même sans processus de nœud exécutant mon application express dans ma machine virtuelle, j'obtenais toujours cette erreur jusqu'au rechargement de la boîte vagrant.la source
Arrêtez le service qui utilise ce port.
la source
Dans mon cas , la question a été causé par l' oubli d'appel
next()
dans un express.js appel de méthode `utilisation.http://expressjs.com/guide/using-middleware.html
la source
Cela a fonctionné pour moi.
http://www.codingdefined.com/2015/09/how-to-solve-nodejs-error-listen.html
Modifiez simplement le numéro de port dans les propriétés du projet.
la source
Vous pouvez également changer le port de Gruntfile.js et exécuter à nouveau.
la source
Après avoir tué le même processus plusieurs fois et ne pas être en mesure de localiser ce qui fonctionnait sur le port 8000, j'ai réalisé que j'essayais de courir sur le port 8000 deux fois:
Avant:
MongoClient.connect(db.url, (err, database) => { if (err) return console.log(err); require('./app/routes')(app, database); app.listen(port, () => { console.log('We are live on ' + port); }); }); require('./app/routes')(app, {}); app.listen(port, () => { console.log("We are live on " + port); });
Après:
MongoClient.connect(db.url, (err, database) => { if (err) return console.log(err); require('./app/routes')(app, database); app.listen(port, () => { console.log('We are live on ' + port); }); }); require('./app/routes')(app, {});
la source
J'ai eu le même problème et j'ai découvert qu'un processus nodejs que j'avais précédemment annulé avec CTRL + C était toujours en cours d'exécution. Le problème dans Windows 10 est que Ctrl + C ne tue pas gracieusement nodejs. J'ai ouvert le gestionnaire de tâches et tué le processus manuellement. Les solutions fournies sur GitHub ne fonctionnaient pas pour moi.
la source
Si vous utilisez Windows, vous pouvez terminer le processus à partir du gestionnaire de tâches pour node.js
la source
Aucune des réponses n'a fonctionné pour moi.
Lorsque j'ai redémarré mon ordinateur, je pouvais mettre le serveur en marche.
Mac
shutdown now -r
Linux
sudo shutdown now -r
la source
-> vérifiez ce qui fonctionne sur le port 8080 ou ce que vous voulez vérifier
lsof -i @localhost:8080
si quelque chose est en cours d'exécution, vous pouvez le fermer ou utiliser une commande kill pour le fermer
la source
Il suffit de vérifier votre teminal dans Visual Studio Code Parce que j'exécutais mon application de nœud et que j'hiberne mon ordinateur portable, puis le lendemain matin, je rallume mon ordinateur portable pour le développement de logiciels. Ensuite, j'exécute la nouvelle commande nodemon app.js. Le premier waas fonctionnant de nuit et le second exécutait ma dernière commande, donc deux invites de commande écoutent les mêmes ports, c'est pourquoi vous rencontrez ce problème. Fermez simplement un termianl ou tous les terminaux, puis exécutez votre nœud app.js ou nodemon app.js
la source
Le port que vous écoutez est déjà écouté par un autre processus.
Quand j'ai fait face à cette erreur, j'ai tué le processus en utilisant Windows PowerShell (car j'ai utilisé Windows)
ps
puis vous pouvez obtenir la liste des processusStop-process <Id>
je pense que c'est une aide pour les utilisateurs de Windowsla source
J'ai rencontré le même problème aujourd'hui et le port n'a pas été utilisé. L'approche suivante a aidé:
la source
SI c'est sous mac, il s'agit de l'adresse IP de x86_64-apple-darwin13.4.0. Si vous suivez des erreurs, ce serait quelque chose lié à x86_64-apple-darwin13.4.0. Ajouter
127.0.0.1 x86_64-pomme-darwin13.4.0
dans le fichier / etc / hosts . Alors le problème est parti
la source
Changez simplement votre port, peut-être que votre port actuel est utilisé par iis ou un autre serveur.
la source