J'utilise 'pour toujours' pour exécuter mon application. Je souhaite me connecter à l'environnement en cours pour inspecter mon application. Alors qu'est-ce que je peux faire?
De http://nodejs.org/api/debugger.html :
Utilisation avancée
Le débogueur V8 peut être activé et accessible en démarrant Node avec l'indicateur de ligne de commande --debug ou en signalant un Processus de nœud existant avec SIGUSR1.
Trouvez le PID de votre processus node
et envoyez ensuite SIGUSR1
devrait faire l'affaire:
kill -s SIGUSR1 nodejs-pid
Ensuite, lancez node-inspector
et naviguez jusqu'à l'URL indiquée. Plus dans ce tutoriel .
À partir de Node 6.3, le noeud a un débogueur intégré qui peut être déclenché (même dans une application de production) en faisant:
kill -USR1 <node-pid>
Le processus de nœud va cracher quelque chose comme ceci:
Debugger listening on ws://127.0.0.1:9229/f3f6f226-7dbc-4009-95fa-d516ba132fbd
For help see https://nodejs.org/en/docs/inspector
chrome://inspect
on http://Host.domain:9229
.Si vous ne pouvez pas vous connecter via un navigateur (le serveur est dans un cluster de production avec pare-feu), vous pouvez activer un REPL pour inspecter par la ligne de commande:
node inspect -p <node-pid>
Avant cette version, node-inspector
était un outil distinct pour le débogage des processus nodaux. Toutefois, comme indiqué sur sa propre page, il est généralement déconseillé, car le débogueur désormais intégré est maintenu activement et fournit des fonctionnalités plus avancées. Pour plus d'informations sur cette modification, voir ce fil de discussion .
Vous pouvez ajouter un REPL à votre application. Par exemple, si vous ajoutez un REPL pour écouter sur le port localhost 5001, vous démarrez votre application comme d'habitude et vous vous connectez avec telnet: telnet localhost 5001
. Cela vous mènera à une invite où vous pouvez interagir directement avec votre application.
Sinon, si votre application a besoin de "mettre en pause" lorsqu'elle atteint un certain état, vous devez ajouter "débogueur;" lignes aux zones de votre code où vous voulez ces points d'arrêt, puis démarrez l'application dans debug mode.
J'espère que cela pourra aider.
Pour moi, sous la version 6.9.10 du nœud, je devais
kill -USR1 <node-pid>
puis
node debug -p <node-pid>
la commande node inspect -p <node-pid>
a échoué pour cette version du noeud.
Pour inspecter nodejs et le déboguer, utilisez cette commande
forever -w -c 'node --inspect=IP:PORT' file.js
Même si c’est une vieille question à laquelle il a été répondu, il existe un moyen plus simple, qui consiste à transmettre des paramètres au nœud:
forever start -c 'node --debug-brk' main.js
Si vous ne voulez pas attendre que le débogueur soit attaché, remplacez --debug-brk
par --debug