Je dois faire en sorte que mon application Web node.js locale écoute 80 port. Maintenant, si je lance mon application sur le port 80, je reçois cet erro
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EACCES
at errnoException (net.js:901:11)
at Server._listen2 (net.js:1020:19)
at listen (net.js:1061:10)
at Server.listen (net.js:1127:5)
at Object.<anonymous> (\scripts\server.js:23:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Et si vous exécutez l'application sur le port 4321, cette erreur ne se reproduit pas, elle dépend donc du port.
Que dois-je faire pour pouvoir exécuter mon application sur le port 80 sous Windows 7
Sur la machine Windows, votre port probablement occupé avec IIS Server. Essayez d’arrêter iis d’abord et ensuite, exécutez node.js webapp avec le port 80.
IIS sur le port 80 est définitivement en cause. Et au lieu de le désactiver, vous pouvez essayer le nœud IIS. http://www.hanselman.com/blog/InstallingAndRunningNodejsApplicationsWithinIISOnWindowsAreYouMad.aspx Vous n'avez probablement pas besoin du port 80 dans le développement local, mais si vous passez en production sur une machine Windows IIS Node est un bon choix pour équilibrer la charge.
Sigh - Je viens de découvrir que SKYPE.EXE se cachait sur mes ports 80 et 443. Utilisez netstat -anb
pour voir ce qui pourrait empêcher node.exe d'accepter les sockets sur ces ports ...
Comme @jimme, mon problème était dû au fait que j'avais installé le client Skype pour tester un autre projet sur le même ordinateur de développement.
Dans mon cas, je pouvais }).listen(80);
mais pas }).listen(80, "0.0.0.0");
. Mon serveur était inaccessible depuis autre chose que localhost. Lorsque j'ai enquêté en faisant netstat -abn
, je pouvais voir que quelque chose écoutait sur ce port, mais il n'y avait aucune information sur le processus. J'ai eu de la chance avec l'info que "Windows tente de prendre en charge de tels services inflexibles en ne liant pas son mécanisme de répartition au port 80 jusqu'à ce que quelque chose le demande de manière active. (C'est pourquoi vous ne verrez pas nécessairement un problème au départ, mais vous risquez de rencontrer ce problème. après une sorte de mise à jour ou de changement de configuration), "à https://serverfault.com/questions/65717/port-80-is-being-used-by-system-pid-4- what-is-that qui pointait vers l'article https://www.mikeplate.com/2011/11/06/stop-http-sys-from-listening-on-port-80-in-windows/ .
Lorsque j’ai vu cette information importante et la réponse de @jimme, je me suis rappelé que j’avais également installé Skype. Je viens juste de faire en sorte que skype ne démarre pas au démarrage et j'étais bon.