En jouant autour du botframework de Microsoft, lorsque je tente d’exécuter le fichier app.js, qui est le fichier principal du bot, la première fois est acceptable, après avoir fermé l’émulateur de bot et tous les programmes, puis relancé app.js, ce message d'erreur apparaît
events.js:183
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE :::3978
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at Server.setupListenHandle [as _listen2] (net.js:1351:14)
at listenInCluster (net.js:1392:12)
at Server.listen (net.js:1476:7)
at Server.listen (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\node_modules\restify\lib\server.js:404:32)
at Object.<anonymous> (C:\Users\yu\Documents\GitHub\BotBuilder-
Samples\Node\cards-AdaptiveCards\app.js:10:8)
at Module._compile (module.js:643:30)
at Object.Module._extensions..js (module.js:654:10)
at Module.load (module.js:556:32)
J'ai trouvé une solution à cela. Il semble que le port 3978 ait été pris lorsque j'exécute le fichier js pour la deuxième fois et que je dois utiliser cmd pour rechercher la tâche utilisant ce port, puis la tuer.
C:\>netstat -aon|findstr 3978
donc celui-ci prend le port, même si j'ai déjà fermé tous les programmes
TCP 0.0.0.0:3978 0.0.0.0:0 LISTENING 13140
TCP [::]:3978 [::]:0 LISTENING 13140
en fait, c'est node.exe lui-même, il fonctionne toujours à l'arrière-plan
C:\Users\yu>tasklist|findstr 13140
node.exe 13140 Console 1 42,064 K
et j'ai besoin de le tuer
C:\Users\yu>taskkill /f /t /im node.exe
Y a-t-il un moyen de ne pas toujours répéter cette opération lorsque je souhaite exécuter le fichier plus d'une fois, il commence simplement à être câblé aujourd'hui, et je veux dire pour tous les différents fichiers app.js, incluez un exemple de code officiel. Depuis un mois, tout va bien, le IDE que j'utilise est sublime text 3, la version de node.js est de 8.9.4 lts
Essayez de fermer le processus qui utilise votre port.
netstat -tulnp | grep <port_number>
L'installation du pakcage ci-dessous l'a corrigé pour toujours.
npm install [email protected] --save-dev --save-exact
Exécutez cette commande dans votre terminal:
echo fs.inotify.max_user_watches=524288 | Sudo tee -a /etc/sysctl.conf && Sudo sysctl -p
Pour Arch Linux, ajoutez cette ligne à /etc/sysctl.d/99-sysctl.conf:
fs.inotify.max_user_watches=524288
Puis exécutez:
sysctl --system
Cela persistera également lors des redémarrages.
https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details
L'une ou l'autre des solutions fonctionnera. Sinon, redémarrez votre système et vérifiez à nouveau.
J'ai aussi eu le même problème et essayé de nombreuses façons, mais finalement, cela fonctionne bien
npm install [email protected] --save-dev --save-exact
consultez ce lien pour plus de précisions https://github.com/ionic-team/ionic-cli/issues/2922
Même si je recevais également l'erreur lors de l'exécution du serveur de nœud .. i.e events.js: 183 lancer er; // Evénement 'erreur' non géré ^ Dans mon cas, je recevais cette erreur parce que j'avais changé le numéro de port Mysql 3306 en 3307 lors de l'installation. J'ai récupéré de cette erreur en changeant le numéro de port de Mysql en 3306, et maintenant son exécution.
Essayez de spécifier un port différent avant d'exécuter l'application node.js.
Par exemple, si vous avez une collision sur le port 3978, définissez un autre port avant de démarrer le fichier server.js:
export PORT=3979