Node.js est un environnement d'exécution JavaScript très puissant qui peut exécuter du code JavaScript côté serveur. Il dispose d'un mécanisme efficace basé sur les événements et d'un modèle d'E/S non bloquant, ce qui le rend idéal pour créer des applications réseau évolutives.
Cependant, lorsque vous lancez une application Node.js sous Linux, vous pouvez rencontrer des problèmes tels que l'impossibilité d'accéder à l'application ou au port. Ces problèmes peuvent affecter les performances et la disponibilité de votre application. Dans cet article, nous explorerons pourquoi ces problèmes surviennent et comment les résoudre.
Lorsque votre application tente d'écouter sur un certain port sous Linux, un problème de port occupé peut survenir. Cela peut être dû au fait qu'une autre application occupe le port ou que l'application précédente n'a pas été fermée correctement, ce qui fait que le port reste occupé.
Vous pouvez vérifier le processus qui occupe le port à l'aide de la commande suivante :
sudo lsof -i :<port>
Cette commande renverra le PID et le nom du processus qui occupe le port. Vous pouvez tuer le processus en utilisant la commande suivante :
sudo kill <PID>
Si vous ne parvenez pas à tuer le processus, vous pouvez essayer de forcer l'arrêt en utilisant l'option "-9" :
sudo kill -9 <PID>
lorsque vous démarrez Linux Lors de l'exécution d'une application Node.js, un pare-feu peut bloquer l'accès à l'application ou au port. Vous pouvez ajouter le port de votre application à la liste des exceptions du pare-feu pour autoriser l'accès externe au port.
Sur Ubuntu, vous pouvez ajouter le port à la liste d'exceptions du pare-feu à l'aide de la commande suivante :
sudo ufw allow <port>/tcp
Sur CentOS, vous pouvez ajouter le port à la liste d'exceptions du pare-feu à l'aide de la commande suivante :
sudo firewall-cmd --zone=public --add-port=<port>/tcp --permanent
Lorsque vous lancez une application Node.js sous Linux, vous pouvez obtenir une erreur de liaison d'adresse IP. Cela peut être dû au fait que le code de votre application est lié à une mauvaise adresse IP, ce qui rend l'application inaccessible.
Vous pouvez spécifier l'adresse IP correcte dans le code de votre application, par exemple :
const http = require('http'); const hostname = '0.0.0.0'; // or your IP const port = 3000; // or your port const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World!\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
Dans le code ci-dessus, nous définissons le nom d'hôte sur "0.0.0.0". Cela signifie que nous lions l'application à toutes les adresses IP disponibles pour garantir l'accès à l'application.
Lorsque vous lancez une application Node.js sous Linux, vous pouvez rencontrer une erreur de résolution DNS. Cela peut être dû au fait que votre application tente d'accéder à un nom de domaine ou à un serveur qui n'existe pas. Vous pouvez vérifier votre configuration DNS à l'aide de la commande suivante :
cat /etc/resolv.conf
Cette commande affichera la configuration du serveur DNS actuel. Si vous utilisez un serveur DNS public tel que Google DNS ou Cloudflare DNS, vous pouvez l'ajouter à votre configuration réseau. Vous pouvez modifier le fichier "/etc/resolv.conf" et ajouter l'entrée suivante :
nameserver 8.8.8.8 # Google DNS nameserver 1.1.1.1 # Cloudflare DNS
Enfin, il se peut qu'il y ait une erreur dans votre code d'application qui vous empêche d'accéder à l'application. Vous pouvez consulter vos fichiers journaux pour trouver plus d'informations sur l'erreur. Vous pouvez également utiliser des outils de débogage, tels que le débogueur fourni avec Node.js ou les outils de développement Chrome, pour déboguer.
Divers problèmes peuvent survenir lors du lancement d'une application Node.js sous Linux, mais avec une inspection et un débogage minutieux, vous pouvez résoudre ces problèmes et vous assurer que votre application fonctionne correctement.
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!