Maison >interface Web >js tutoriel >Pourquoi est-ce que j'obtiens « Erreur : écoutez EADDRINUSE » lorsque j'exécute mon serveur Node.js et que je crée une XMLHttpRequest ?

Pourquoi est-ce que j'obtiens « Erreur : écoutez EADDRINUSE » lorsque j'exécute mon serveur Node.js et que je crée une XMLHttpRequest ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-28 06:51:11574parcourir

Why am I getting

Dépannage « Erreur : écoutez EADDRINUSE » dans Node.JS

Lors de la tentative d'exécuter simultanément un serveur sur le port 80 et de lancer une XMLHttpRequest, vous pouvez rencontrer l'erreur « Erreur : écoutez EADDRINUSE ». Ce problème survient lorsque votre système local tente d'attribuer le même port à plusieurs applications, entraînant un conflit.

Dans le script serveur fourni :

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

et la requête :

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();

le problème réside dans le fait que le serveur écoute sur le port 80 pendant que XMLHttpRequest tente d'accéder au même port. Pour résoudre la collision, vous pouvez envisager d'utiliser un port différent pour votre serveur ou pour XMLHttpRequest.

Étapes de dépannage supplémentaires :

  • Assurez-vous qu'aucune autre application écoutent déjà sur le port 80.
  • Redémarrez Node.JS et votre site Web navigateur.
  • Vérifiez les paramètres de votre pare-feu pour vous assurer qu'ils ne bloquent pas le port.
  • Si nécessaire, terminez de force tous les processus Node.JS à l'aide du nœud killall -9. Cependant, notez que cela doit être utilisé avec prudence car cela peut également tuer d'autres processus système.

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:
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