Table des matières
Activer le débogage nodejs
Sécurité du débogage
Utilisez WebStorm pour le débogage de nodejs
Utilisez Chrome devTools pour le débogage
Utilisez node-inspect pour le débogage
Autres clients de débogage
Maison interface Web js tutoriel Comment activer le débogage nodejs ? Comment déboguer le programme nodejs ?

Comment activer le débogage nodejs ? Comment déboguer le programme nodejs ?

Jan 20, 2022 pm 07:55 PM
nodejs 调试

Comment déboguer un programme nodejs ? L'article suivant vous présentera la méthode de débogage nodejs. J'espère qu'il vous sera utile !

Comment activer le débogage nodejs ? Comment déboguer le programme nodejs ?

Pour les développeurs, dans le processus de développement d'applications, ils ont souvent besoin de recourir à la fonction de débogage du langage de programmation pour faciliter le développement et résoudre les bugs. D'une manière générale, nous devons utiliser la fonction de débogage d'un IDE puissant pour terminer ce travail. nodejs ne fait pas exception.

Aujourd'hui, nous allons présenter en détail comment déboguer le programme node.

Activer le débogage nodejs

Vous souvenez-vous encore du programme koa dont nous avons parlé auparavant ? Cet article prendra comme exemple un simple programme serveur koa pour démarrer le débogage de nodejs.

Jetons d'abord un coup d'œil à un simple service koa app.js :

const Koa = require('koa');
const app = module.exports = new Koa();

app.use(async function(ctx) {
  ctx.body = 'Hello World';
});

if (!module.parent) app.listen(3000);
Copier après la connexion

Le programme ci-dessus ouvre le port 3000 et établit un service http. Chaque fois qu'une demande est faite, hello World sera renvoyé, ce qui est très simple.

Pour exécuter le programme ci-dessus, nous devons exécuter le nœud app.js. Cela exécutera app.js mais n'activera pas le débogage.

Comment déboguer ?

Nous devons ajouter le paramètre --inspect :

node --inspect app.js
Copier après la connexion
Copier après la connexion

Le code ci-dessus activera la fonction de débogage de nodejs.

Jetons un œil au résultat :

Debugger listening on ws://127.0.0.1:9229/88c23ae3-9081-41cd-98b0-d0f7ebceab5a
For help, see: https://nodejs.org/en/docs/inspector
Copier après la connexion

Les résultats nous disent deux choses. La première chose est le port que le débogueur écoute. Par défaut, le port 9229 de 127.0.0.1 sera ouvert. Et attribué un UUID unique pour la différenciation.

La deuxième chose est de nous dire que le débogueur utilisé par nodejs est Inspector.

Inspector a été introduit après nodejs 8. Si c'est avant nodejs 7, alors l'ancien débogueur est utilisé.

Sécurité du débogage

Si le débogueur est connecté à l'environnement d'exécution de nodejs, s'il existe un attaquant malveillant, l'attaquant malveillant peut exécuter du code arbitraire dans l'environnement nodejs. Cela entraînera de grands risques de sécurité pour notre programme.

Nous devons donc faire attention à la sécurité du débogage. De manière générale, nous déconseillons le débogage à distance.

Par défaut, --inspect est lié à 127.0.0.1, ce qui autorise uniquement l'accès aux programmes locaux. Et tout programme exécuté localement est autorisé à déboguer le programme.

Si nous voulons vraiment exposer le programme de débogage à des programmes externes, nous pouvons spécifier l'adresse IP externe de la machine ou 0.0.0.0 (c'est-à-dire n'importe quelle adresse, aucune restriction), afin que la machine distante puisse effectuer un débogage à distance.

Que devons-nous faire si nous voulons effectuer un débogage à distance en toute sécurité ?

Tout d'abord, nous devons activer le débogage local :

node --inspect app.js
Copier après la connexion
Copier après la connexion

Ensuite, nous pouvons construire un tunnel ssh pour mapper le port 9221 local au port 9229 du serveur distant :

ssh -L 9221:localhost:9229 user@remote.example.com
Copier après la connexion

De cette façon, nous pouvons nous connecter au 9221 local port. Débogage à distance.

Utilisez WebStorm pour le débogage de nodejs

WebStorm produit par JetBrains peut être considéré comme un outil puissant pour développer nodejs. WebStorm a sa propre option de débogage, elle sera activée en arrière-plan --inspect. :

Utiliser le débogage WebStorm est similaire à l'utilisation d'IDEA pour déboguer des programmes Java, je n'entrerai donc pas dans les détails ici.

Utilisez Chrome devTools pour le débogage

La condition préalable à l'utilisation de Chrome devTools pour le débogage est que nous avons activé le mode --inspect.

Entrez chrome://inspect dans chrome :

Nous pouvons voir l'interface chrome inspect Si vous avez déjà un programme nodejs avec inspect activé localement, vous pouvez le voir directement dans Remote Target.

Sélectionnez la cible que vous souhaitez déboguer et cliquez sur inspecter pour ouvrir l'outil de débogage Chrome devTools :

Vous pouvez profiler le programme et le déboguer.

Ici, nous nous concentrons sur le débogage, alors allez dans la colonne source et ajoutez le code source du programme que vous souhaitez déboguer :

Ajoutez des points d'arrêt pour démarrer le débogage. C'est la même chose que le débogage de js côté Web dans Chrome.

Utilisez node-inspect pour le débogage

En fait, nodejs dispose d'un outil de débogage intégré appelé node-inspect, qui est un outil de débogage cli. Voyons comment l'utiliser.

Nous utilisons directement :

node inspect app.js

< Debugger listening on ws://127.0.0.1:9229/f1c64736-47a1-42c9-9e9e-f2665073d3eb
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in app.js:1
> 1 const Koa = require(&#39;koa&#39;);
  2 const app = module.exports = new Koa();
  3 
debug>
Copier après la connexion

node inspect pour faire deux choses. La première chose est de générer un sous-programme pour exécuter node --inspect app.js, et la deuxième chose est d'exécuter la fenêtre de débogage CLI dans le programme principal.

Ce débogueur CLI nous fournit des commandes très utiles :

1, Stepping

  • cont, c : Continuer l'exécution
  • next, n : Passer à l'étape suivante
  • step, s : Step in
  • out, o : Sortez
  • pause : Suspendez l'exécution du code

2, Points d'arrêt

  • setBreakpoint(), sb() : Définir un point d'arrêt sur la ligne actuelle
  • setBreakpoint(line), sb(line) : Définir un point d'arrêt sur la ligne spécifiée
  • setBreakpoint('fn()'), sb(… ) : Définir un point d'arrêt dans la fonction spécifiée
  • setBreakpoint('script.js', 1), sb(...) : Définir un point d'arrêt dans le fichier de script spécifié
  • clearBreakpoint('script.js', 1), cb (...) : Effacer les points d'arrêt du fichier

3, Informations

  • backtrace, bt : Imprimer les informations de trace du cadre d'exécution actuel
  • list(5) : Répertorier les 5 lignes avant et après le code source
  • watch (expr) : Ajouter une expression de surveillance
  • unwatch(expr) : Supprimer l'expression de surveillance
  • watchers : Liste tous les observateurs
  • repl : Ouvrir l'expression de repl
  • exec expr : Exécuter l'expression

via ce qui précède commande, nous pouvons effectuer des activités de débogage plus complexes dans la CLI.

Autres clients de débogage

En plus de ceux que nous avons mentionnés ci-dessus, nous pouvons également utiliser vscode, Visual Studio, Eclipse IDE, etc. pour déboguer nodejs, qui ne sera pas présenté en détail ici.

Les amis intéressés peuvent explorer par eux-mêmes.

Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel Nodejs ! !

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Explication détaillée du débogage des fonctions C++ : Comment déboguer les problèmes dans les fonctions multithread ? Explication détaillée du débogage des fonctions C++ : Comment déboguer les problèmes dans les fonctions multithread ? May 02, 2024 pm 04:15 PM

Le débogage multithread C++ peut utiliser GDB : 1. Activer la compilation des informations de débogage ; 2. Définir les points d'arrêt ; 3. Utiliser les threads d'information pour afficher les threads ; 4. Utiliser le thread pour changer de thread ; Cas réel de débogage : 1. Utilisez threadapplyallbt pour imprimer la pile ; 2. Vérifiez l'état du thread ; 3. Exécutez le thread principal en une seule étape ;

Comment utiliser LeakSanitizer pour déboguer les fuites de mémoire C++ ? Comment utiliser LeakSanitizer pour déboguer les fuites de mémoire C++ ? Jun 02, 2024 pm 09:46 PM

Comment utiliser LeakSanitizer pour déboguer les fuites de mémoire C++ ? Installez LeakSanitizer. Activez LeakSanitizer via l'indicateur de compilation. Exécutez l’application et analysez le rapport LeakSanitizer. Identifiez les types d’allocation de mémoire et les emplacements d’allocation. Corrigez les fuites de mémoire et assurez-vous que toute la mémoire allouée dynamiquement est libérée.

Raccourci vers le débogage et l'analyse de la fonction Golang Raccourci vers le débogage et l'analyse de la fonction Golang May 06, 2024 pm 10:42 PM

Cet article présente des raccourcis pour le débogage et l'analyse de la fonction Go, notamment : le débogueur intégré dlv, qui est utilisé pour suspendre l'exécution, vérifier les variables et définir des points d'arrêt. Journalisation, utilisez le package de journaux pour enregistrer les messages et les afficher pendant le débogage. L'outil d'analyse des performances pprof génère des graphiques d'appels et analyse les performances, et utilise gotoolpprof pour analyser les données. Cas pratique : Analyser les fuites mémoire via pprof et générer un graphe d'appel pour afficher les fonctions à l'origine des fuites.

Comment effectuer un débogage efficace dans les expressions Java lambda ? Comment effectuer un débogage efficace dans les expressions Java lambda ? Apr 24, 2024 pm 12:03 PM

Déboguer efficacement les expressions Lambda : Débogueur IntelliJ IDEA : définissez des points d'arrêt sur les déclarations de variables ou les méthodes, inspectez les variables internes et leur état et consultez la classe d'implémentation réelle. Java9+JVMTI : connectez-vous à la JVM d'exécution pour obtenir des identifiants, inspecter le bytecode, définir des points d'arrêt et surveiller les variables et l'état pendant l'exécution.

Comment déboguer le code asynchrone PHP Comment déboguer le code asynchrone PHP May 31, 2024 am 09:08 AM

Les outils de débogage du code asynchrone PHP incluent : Psalm : un outil d'analyse statique qui trouve les erreurs potentielles. ParallelLint : un outil qui inspecte le code asynchrone et fournit des recommandations. Xdebug : Une extension pour déboguer les applications PHP en activant une session et en parcourant le code. D'autres conseils incluent l'utilisation de la journalisation, des assertions, l'exécution de code localement et l'écriture de tests unitaires.

Comment effectuer des tests de concurrence et le débogage dans la programmation simultanée Java ? Comment effectuer des tests de concurrence et le débogage dans la programmation simultanée Java ? May 09, 2024 am 09:33 AM

Tests de concurrence et débogage Les tests de concurrence et le débogage dans la programmation simultanée Java sont cruciaux et les techniques suivantes sont disponibles : Tests de concurrence : tests unitaires : isolez et testez une seule tâche simultanée. Tests d'intégration : tester l'interaction entre plusieurs tâches simultanées. Tests de charge : évaluez les performances et l'évolutivité d'une application sous une charge importante. Débogage simultané : points d'arrêt : suspendez l'exécution du thread et inspectez les variables ou exécutez le code. Journalisation : enregistrez les événements et l'état du fil. Trace de pile : identifiez la source de l’exception. Outils de visualisation : surveillez l'activité des threads et l'utilisation des ressources.

Quelles sont les techniques de débogage des appels récursifs dans les fonctions Java ? Quelles sont les techniques de débogage des appels récursifs dans les fonctions Java ? May 05, 2024 am 10:48 AM

Les techniques suivantes sont disponibles pour déboguer les fonctions récursives : Vérifier la trace de la pileDéfinir les points de débogageVérifier si le cas de base est correctement implémentéCompter le nombre d'appels récursifsVisualiser la pile récursive

Erreurs de débogage PHP : un guide des erreurs courantes Erreurs de débogage PHP : un guide des erreurs courantes Jun 05, 2024 pm 03:18 PM

Les erreurs courantes de débogage PHP incluent : Erreurs de syntaxe : vérifiez la syntaxe du code pour vous assurer qu'il n'y a pas d'erreurs. Variable non définie : avant d'utiliser une variable, assurez-vous qu'elle est initialisée et qu'une valeur lui est attribuée. Point-virgules manquants : ajoutez des points-virgules à tous les blocs de code. La fonction n'est pas définie : vérifiez que le nom de la fonction est correctement orthographié et assurez-vous que le bon fichier ou l'extension PHP est chargé.

See all articles