Maison > interface Web > js tutoriel > Pourquoi Node.js renvoie-t-il « Erreur : écoutez EADDRINUSE » lors de l'utilisation de XMLHttpRequest ?

Pourquoi Node.js renvoie-t-il « Erreur : écoutez EADDRINUSE » lors de l'utilisation de XMLHttpRequest ?

Barbara Streisand
Libérer: 2024-11-27 19:51:10
original
801 Les gens l'ont consulté

Why Does Node.js Throw

Adressage de l'erreur : écoutez EADDRINUSE dans Node.js

Le problème "Erreur : écoutez EADDRINUSE" se produit lorsque Node.js rencontre une tentative de écouter sur un port déjà occupé. Node.js est un environnement d'exécution pour exécuter des applications JavaScript.

Dans le scénario fourni, un serveur écoute sur le port 80 tout en essayant simultanément d'utiliser XMLHttpRequest pour une requête. Les navigateurs peuvent gérer des connexions simultanées, mais le serveur Node.js est confronté à un problème en raison de l'indisponibilité du port.

Le code du serveur, comme mentionné :

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

Le serveur écoute essentiellement les informations entrantes. connexions mais en les détruisant immédiatement. Cela empêche le traitement de toute requête réelle.

Le code de la requête, tel que fourni :

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

La requête tente d'effectuer une requête HTTP GET vers un site Web distant pendant que Node.js le serveur s'exécute sur le port 80.

Pour résoudre l'erreur : écouter EADDRINUSE », le serveur doit soit :

  • Utiliser un port différent : Le serveur peut écouter sur un port différent, tel que 8080, permettant à la requête XMLHttpRequest de se poursuivre sur le port 80.
  • Arrêter le serveur : Si le serveur doit fonctionner sur le port 80, il doit être arrêté avant d'exécuter le Requête XMLHttpRequest. Une méthode courante consiste à utiliser le nœud killall -9 pour terminer le processus Node.js.
  • Utiliser un serveur proxy : Un serveur proxy peut être utilisé pour gérer les connexions entrantes et transmettre les requêtes au nœud. Serveur .js. Cela permet à plusieurs applications d'utiliser le même port.

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!

source:php.cn
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