Comment résoudre « Erreur : écouter EADDRINUSE : adresse déjà utilisée » ?

Comment Resoudre Erreur Ecouter Eaddrinuse Adresse Deja Utilisee



Node.js est un environnement d'exécution qui permet au code écrit en langage JavaScript de s'exécuter sur la page Web ou le serveur local. Il s'agit d'un environnement monothread et de nature asynchrone. Il propose divers modules intégrés et externes qui peuvent être utilisés pour effectuer diverses opérations telles que l'envoi de requêtes HTTP sur le serveur. Lors de l'interaction avec divers serveurs locaux, il est possible d'obtenir plusieurs erreurs qui sont résolues en suivant des guides spécifiques.

Ce guide explique les correctifs possibles pour « écouter EADDRINUSE : adresse déjà utilisée » en couvrant les sections ci-dessous :

Comment résoudre « Erreur : écouter EADDRINUSE : adresse déjà utilisée » ?

Le ' Erreur : écoutez EADDRINUSE : adresse déjà utilisée » se produit lorsque plusieurs applications ou tâches tentent d'accéder au même port. Cette erreur peut être générée lors des phases de tests ou de développement. Par exemple, l'erreur mentionnée ci-dessus va être générée pour une meilleure compréhension :







const expressObj = exiger ( 'exprimer' )
const démoApp = expressObj ( )
démoApp. obtenir ( '/' , ( demande, résolution ) => {
rés. json ( {
nom : « Article Linux sur CORS » ,
langue : 'Node.js' ,
application : 'CorsApp' ,
origine : « Origine croisée » ,
intergiciel : 'CORS'
} )
} )
démoApp. écouter ( 8080 , ( ) => {
console. enregistrer ( `Le serveur a démarré le 'http://localhost:8080/' ` )
} )
démoApp. écouter ( 8080 , ( ) => {
console. enregistrer ( `Le serveur a démarré le 'http://localhost:8080/' ` )
} )

L'extrait de code ci-dessus fonctionne comme ceci :



  • Tout d’abord, importez le « exprimer ' module et stocker son objet dans une nouvelle variable ' expressObj ». Utilisez cette variable comme constructeur pour créer une nouvelle application express nommée « démoApp ».
  • Ensuite, créez une requête GET en utilisant le «  obtenir() ' et définissez la page d'accueil en tant que gestionnaire racine en passant ' / » comme premier paramètre. Le deuxième paramètre est une fonction de rappel anonyme qui envoie « JSON ' données comme réponse par l'utilisation du ' json() ' méthode.
  • Après cela, faites en sorte que cette application s'exécute sur le même numéro de port que ' 8080 ' Deux fois. Cette exécution du même port deux fois génère l'erreur mentionnée.

La sortie générée après la compilation du code ci-dessus montre l'apparition d'une erreur « Erreur : écoute EADDRINUSE : adresse déjà utilisée » :







Il existe principalement deux solutions pour résoudre l'erreur survenue dans la sortie ci-dessus : modifier les numéros de port ou arrêter l'un des processus en cours. Mais il existe également plusieurs autres correctifs qui résolvent indirectement le problème « Erreur : écoutez EADDRINUSE : adresse déjà utilisée ' erreur. Ces solutions ainsi que des démonstrations pratiques sont présentées ci-dessous :

Solution 1 : exécuter des processus sur différents ports

La solution la plus recommandée pour l'erreur mentionnée est d'identifier les numéros de port sur lesquels les deux services s'exécutent comme dans notre cas, c'est ' 8080 ». Ensuite, choisissez un service au hasard et modifiez son numéro de port pour que les services écoutent sur localhost mais avec des numéros de port différents. Notre code après la modification discutée est présenté ci-dessous :



const expressObj = exiger ( 'exprimer' )
const démoApp = expressObj ( )
démoApp. obtenir ( '/' , ( demande, résolution ) => {
rés. json ( {
nom : « Article Linux sur CORS » ,
langue : 'Node.js' ,
application : 'CorsApp' ,
origine : « Origine croisée » ,
intergiciel : 'CORS'
} )
} )
démoApp. écouter ( 8080 , ( ) => {
console. enregistrer ( `Le serveur a démarré le 'http://localhost:8080/' ` )
} )
démoApp. écouter ( 3000 , ( ) => {
console. enregistrer ( `Le serveur a démarré le 'http://localhost:8080/' ` )
} )

La sortie générée après l'exécution du code ci-dessus montre que maintenant le ' Erreur : écoutez EADDRINUSE : adresse déjà utilisée ' Le problème est résolu :

Solution 2 : arrêter les processus exécutés sur le même port

Une autre façon de résoudre l'erreur « écouter EADDRINUSE : adresse déjà utilisée » consiste à arrêter les processus en cours d'exécution sur le port spécifique déjà utilisé. Cela rendra le port inactif auquel le développeur pourra accéder pour effectuer des tâches spécifiées. Ce processus d'arrêt se fait à l'aide d'un module externe nommé « port d'arrêt ».

Par exemple, tous les processus qui s'exécutent sur le numéro de port spécifié ' 8080 ' vont être tués en utilisant le ' port d'arrêt module '. Il existe deux manières d'utiliser le module « kill-port » et ces deux approches sont indiquées ci-dessous :

Méthode 1 : utiliser le module « kill-port » après l'installation

Le ' port d'arrêt ' Le module est un module externe tiers et afin d'utiliser ce module dans le projet node.js. Ce module doit d'abord être téléchargé en exécutant la commande ci-dessous :

npm installer tuer - port - g

La figure ci-dessous montre l'achèvement de l'installation du ' port d'arrêt 'variable :

Après l'installation, l'utilisateur peut supprimer les services pour le numéro de port requis. Dans notre cas, les services de numéro de port » 8080 » vont être tués via la commande indiquée ci-dessous :

tuer - port -- port 8080

La sortie ci-dessous confirme que tous les services pour le port ' 8080 ' A été tué:

Méthode 2 : utiliser le module « kill-port » sans installation

Le ' port d'arrêt Le module ' peut être utilisé sans passer par le processus d'installation grâce à l'utilisation d'un ' npx » coureur de paquets. Par exemple, le « port d'arrêt ' Le module est utilisé pour supprimer deux ports spécifiés à l'aide de la commande d'exécution de package ' npx ' indiquée ci-dessous :

npx tuer - port 8080 9000

La sortie ci-dessous montre que les services pour les ports spécifiés « 9000 ' et ' 8080 ' A été tué:

Astuce bonus : désinstallation du module « kill-port »

Afin de désinstaller le ' port d'arrêt ' globalement à partir du système, exécutez la commande ci-dessous :

npm désinstaller tuer - port - g

Solution 3 : terminez les services Node.js sous Windows

Si l'erreur « Erreur : écoutez EADDRINUSE : adresse déjà utilisée » persiste, supprimez tous les éléments en cours d'exécution » noeud.js ' Services utilisant l'approche GUI ou CLI.

Utilisation de l'approche CLI

Appuie sur le ' Fenêtre » pour ouvrir la barre de recherche et saisir le « CMD ' à l'intérieur du champ de recherche, à partir des résultats générés. Ensuite, sélectionnez le « Invite de commande ' et appuyez sur la touche ' Exécuter en tant qu'administrateur ' bouton:

En sélectionnant l'option, une nouvelle fenêtre d'invite de contrôle apparaîtra, pour supprimer les services « node.js » actuellement en cours d'exécution en arrière-plan, exécutez la commande ci-dessous :

tuer des tâches / F / Nœud de messagerie instantanée. exe

La sortie générée montre que les services « node.js » ont été arrêtés :

Utilisation de l'approche GUI

Pour supprimer les services node.js en cours d'exécution du système, ouvrez le fichier ' Gestionnaire des tâches » en appuyant sur le « Ctrl + Maj + Échap » touches immédiatement. Après avoir ouvert le « Gestionnaire des tâches », accédez au « Détails ' tapez, sélectionnez le ' noeud.exe ' service, et appuyez sur le ' Tâche finale ' Bouton situé en bas à droite, comme indiqué ci-dessous :

Il s’agit de résoudre l’« Erreur : écouter EADDRINUSE : adresse déjà utilisée » dans Node.js.

Conclusion

L'erreur « Erreur : écouter EADDRINUSE : adresse déjà utilisée » se produit lorsque plusieurs services tentent d'utiliser un seul port en même temps. Pour résoudre ce problème, l'utilisateur doit essayer d'utiliser un numéro de port différent ou supprimer les services qui s'exécutent déjà sur le numéro de port spécifié à l'aide du «  port d'arrêt module '. Si l'erreur n'est toujours pas résolue, tuez tous ceux en cours d'exécution ' noeud.js » depuis le gestionnaire de tâches et redémarrez votre application. Ce guide a illustré les solutions possibles pour résoudre le problème « Erreur : écouter EADDRINUSE : adresse déjà utilisée ».