Maison > interface Web > js tutoriel > Pourquoi est-ce que j'obtiens le message « Erreur : écoutez EADDRINUSE » lors de l'exécution d'un serveur Node.JS ?

Pourquoi est-ce que j'obtiens le message « Erreur : écoutez EADDRINUSE » lors de l'exécution d'un serveur Node.JS ?

Susan Sarandon
Libérer: 2024-11-19 13:03:03
original
358 Les gens l'ont consulté

Why Am I Getting the

Correction de l'erreur : EADDRINUSE lors de l'utilisation de Node.JS

Aperçu du problème :

Lors de la tentative d'exécution d'un serveur sur le port 80 lors de l'exécution d'une requête à l'aide de XMLHttpRequest, l'erreur « Erreur : écoutez EADDRINUSE » peut se produire dans Node.JS. Cette erreur indique que le serveur ne peut pas se lier au port spécifié car un autre processus l'utilise déjà.

Pourquoi c'est un problème :

Node.JS nécessite une exclusivité utilisation du port auquel il se lie, empêchant ainsi les requêtes d'être effectuées pendant que le serveur est en cours d'exécution. Les navigateurs peuvent se connecter au serveur et faire des requêtes car ils utilisent des ports éphémères.

Implémentation du serveur :

net.createServer(function (socket) {
    socket.name = socket.remoteAddress + ":" + socket.remotePort;
    console.log('connection request from: ' + socket.remoteAddress);
    socket.destroy();
  }).listen(options.port);
Copier après la connexion

Code de demande :

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function() {
    sys.puts("State: " + this.readyState);

    if (this.readyState == 4) {
        sys.puts("Complete.\nBody length: " + this.responseText.length);
        sys.puts("Body:\n" + this.responseText);
    }
};

xhr.open("GET", "http://mywebsite.com");
xhr.send();
Copier après la connexion

Solution :

Pour résoudre ce problème, il est nécessaire de s'assurer qu'aucun autre processus n'est lié au port 80. Ceci peut être réalisé en tuant le processus incriminé en utilisant la commande suivante :

killall -9 node
Copier après la connexion

Attention : Cette commande mettra fin à tous les processus Node.JS en cours d'exécution, alors utilisez-la avec prudence.

Vérification de la terminaison :

Pour vérifier que le processus a été terminé, exécutez la commande suivante :

ps ax
Copier après la connexion

Si aucun processus Node.JS n'est répertorié, le problème devrait être résolu.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal