Comment déboguer Nœud.js applications?
comment déboguer un noeud.js serveur d'application?
en ce moment j'utilise surtout "alert debugging avec des déclarations d'impression comme ceci:
sys.puts(sys.inspect(someVariable));
Il doit y avoir une meilleure façon de débogage. Je sais que Google Chrome a un débogueur en ligne de commande. Ce débogueur est-il disponible pour Node?js?
30 réponses
node-inspector pourrait sauver la journée! Utilisez-le à partir de n'importe quel navigateur supportant WebSocket . Les points d'arrêt, de profils, de livecoding, etc... Il est vraiment génial.
installez - le avec:
npm install -g node-inspector
puis exécuter:
node-debug app.js
débogage
- Joyent Guide de l'
- Débogueur
- "1519150920 Nœud" Inspecteur
- Code De Visual Studio
- Cloud9
- parenthèses
profilage
-
node --prof ./app.js
-
node --prof-process ./the-generated-log-file
Heapdumps
Flamegraphs
- 0x
- jam3/outil développeur d'internet explorer puis Outils de développement Chrome Flamme de Cartes
- Dtrace et StackVis - seulement supporté sur SmartOS
Tracer
Journalisation
Bibliothèques de sortie des informations de débogage
Bibliothèques qui améliorent la trace de la pile de l'information
Benchmarking
- Apache Bench :
ab -n 100000 -c 1 http://127.0.0.1:9778/
- wrk
autres
Héritage
ceux-ci sont utilisés pour travailler mais ne sont plus entretenus ou ne s'appliquent plus à versions modernes de noeuds.
- https://github.com/bnoordhuis/node-profiler - remplacé par le débogage intégré
- https://github.com/c4milo/node-webkit-agent - remplacé par node inspector
- https://nodetime.com / - dissoute
le débogueur V8 publié dans le cadre du Google Chrome Developer Tools peut être utilisé pour déboguer Node.scripts js. Une explication détaillée de la façon dont cela fonctionne peut être trouvée dans le noeud .js GitHub wiki .
Node a son propre construit dans GUI debugger à partir de la version 6.3 (en utilisant les DevTools de Chrome)
passez simplement le drapeau de l'inspecteur et vous recevrez une adresse URL de l'inspecteur:
node --inspect server.js
vous pouvez aussi casser sur la première ligne en passant --inspect-brk
à la place.
pour ouvrir automatiquement une fenêtre Chrome, utilisez le module inspect-process .
# install inspect-process globally
npm install -g inspect-process
# start the debugger with inspect
inspect script.js
Node.la version 0.3.4+ DE js a un support de débogage intégré.
node debug script.js
le Code de Visual Studio sera mon choix pour le débogage. Pas de frais généraux d'installation d'outils ou de matériel npm install
.
Il suffit de régler le point de départ de votre application dans le paquet.json et VSCode créeront automatiquement un fichier de configuration à l'intérieur de votre solution. Il est construit sur Electron , sur lequel les éditeurs comme Atom sont construits.
VS Code donne similaire débogage de l'expérience que vous pourriez avoir avait dans D'autres IDEs comme VS, Eclipse, etc.
j'utilise personnellement JetBrains WebStorm comme C'est le seul IDE JavaScript que j'ai trouvé qui est grand pour les frontend et backend JavaScript.
il fonctionne sur plusieurs OS et a noeud.débogage js intégré (ainsi qu'une tonne d'autres choses) ( http://www.jetbrains.com/webstorm/features/index.html ).
Mon seul les "questions" /articles la liste d'envies sont ont été :
-
Il semble être plus gourmandes en ressources sur Mac que Windowsqu'Il ne semble plus un problème dans la version 6. -
Ce serait bien si elle avait Extrait de soutien (comme ceux de Sublime Text 2 - c'est à dire de type " fun " et appuyez sur la touche 'tab' pour le mettre en fonction.voir le commentaire de @WickyNilliams ci - dessous-avec les gabarits en direct, vous avez aussi le soutien de snippet.
Theseus est un projet D'Adobe research qui vous permet de déboguer votre noeud.code js dans leur éditeur Open Source entre parenthèses . Il a quelques traits intéressants comme la couverture de code en temps réel, l'inspection rétroactive, l'arbre d'appel asynchrone.
beaucoup de bonnes réponses ici, mais je voudrais ajouter mon point de vue (basé sur la façon dont mon approche a évolué)
Les Journaux De Débogage
avouons-le, nous aimons tous un bon console.log('Uh oh, if you reached here, you better run.')
et parfois cela fonctionne très bien, donc si vous êtes réticents à vous en éloigner au moins Ajouter un peu de bling à vos logs avec débogage de Visionmedia .
Débogage Interactif
aussi pratique que la journalisation sur console peut-être, pour déboguer professionnellement vous avez besoin de retrousser vos manches et de se coincer dans. Définir les points de rupture, passer en revue votre code, inspecter les portées et les variables pour voir ce qui cause ce comportement étrange. Comme d'autres l'ont mentionné, noeud-inspecteur est vraiment les abeilles-genoux. Il fait tout ce que vous pouvez faire avec le débogueur intégré, mais en utilisant cette interface familière de Chrome DevTools. Si, comme moi, vous utilisez Webstorm , alors ici est un guide pratique pour déboguer à partir de là.
Les Traces De Pile
par défaut, nous ne pouvons pas tracer une série d'opérations à travers différents cycles de la boucle d'événement (ticks). Pour se déplacer dans cette avoir un regard sur longjohn (mais pas en production!).
Fuites De Mémoire
Avec Noeud.js nous pouvons avoir un processus de serveur prévu pour rester en place pendant un temps considérable. Qu'est-ce que vous faites si vous pensez qu'il a surgi certains méchants fuites? Utilisez heapdump et Chrome DevTools pour comparer quelques instantanés et voir ce qui change.
Pour certains articles utiles, découvrez
si vous vous sentez comme regarder une vidéo(s), puis
- Netflix JS Parle - Nœud de Débogage.js en Production
- vidéo Intéressante à partir de le suivi du groupe de travail sur le traçage et le nœud de débogage.js
- vidéo vraiment informative de 15 minutes sur le noeud-inspecteur
quel que soit le chemin que vous choisissez, soyez je suis sûr que vous comprenez comment vous déboguez
c'est une chose douloureuse
Pour regarder votre propre problème et de savoir
Que vous-même et personne d'autre ne l'a faitSophocle, Ajax
Node.js Tools for Visual Studio 2012 ou 2013 inclut un débogueur. La vue d'ensemble ici indique "noeud.les outils js pour Visual Studio comprennent une prise en charge complète des applications de débogage des noeuds.". Étant nouveau Nœud.js, mais ayant une expérience dans .NET, j'ai trouvé que cet add in est un excellent moyen de déboguer le noeud.js applications.
Visual Studio Code a vraiment un beau noeud.support de débogage js. Il est libre, open source et multi-plateforme et fonctionne sous Linux, OS X et Windows.
vous pouvez même déboguer tâches grunt et gulfp , si vous en avez besoin...
j'ai écrit une approche différente de Debug Node.JS code qui est stable et extrêmement simple. Il est disponible à https://github.com/s-a/iron-node .
un débogueur visuel multi-plateforme opensource.
Installation:
npm install iron-node -g;
Debug:
iron-node yourscript.js;
si vous utilisez L'IDE Atom IDE , vous pouvez installer le paquet node-debugger
.
j'ai créé un petit outil appelé pry.js qui peut vous aider.
mettez une simple instruction quelque part dans votre code, exécutez votre script normalement et le noeud stoppera le thread courant vous donnant accès à toutes vos variables et fonctions. Afficher/modifier/supprimer à volonté!
pry = require('pryjs')
class FizzBuzz
run: ->
for i in [1..100]
output = ''
eval(pry.it) # magic
output += "Fizz" if i % 3 is 0
output += "Buzz" if i % 5 is 0
console.log output || i
bar: ->
10
fizz = new FizzBuzz()
fizz.run()
il y a la ligne de commande intégrée debugger client dans le noeud.js. Cloud 9 IDE ont également assez agréable (visuel) débogueur .
Visual Studio Code fonctionnera pour nous dans le débogage.
j'ai assemblé un petit noeud .js debugging primer sur l'utilisation du noeud-inspector pour ceux qui ne sont pas sûrs où commencer.
démarrez votre processus de noeud avec le drapeau --inspectez .
node --inspect index.js
puis ouvrir chrome://inspect
en chrome. Cliquez sur le lien" Ouvrir DevTools dédiés pour Node "ou installez cette extension chrome pour ouvrir facilement les DevTools chrome.
Pour plus d'informations, reportez-vous à ce lien
si vous avez besoin d'une bibliothèque de journalisation puissante pour le noeud.js, traceur https://github.com/baryon/tracer est un meilleur choix.
il produit des messages de journal avec un timestamp, le nom de dossier, le nom de méthode, le numéro de ligne, le chemin ou la pile d'appel, la console de couleur de soutien, et la base de données de soutien, le dossier, le transport de flux facilement. Je suis l'auteur.
en supposant que vous avez le noeud-inspector installé sur votre ordinateur (si ce n'est pas le cas, tapez simplement 'npm install-g node-inspector') vous avez juste à exécuter:
node-inspector & node --debug-brk scriptFileName.js
et coller L'URI de la ligne de commande dans un navigateur Webkit (Chrome / Safari).
Juste pour être complet:
Le PyCharm 3.0 + Nœud.js Plugin offre un développement impressionnant + run + debug experience .
Utilisez Webstorm! Il est parfait pour le Nœud de débogage.js applications. Il a un débogueur intégré. Consultez les docs ici: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
il y a le nouveau open-source Nodeclipse projet (comme un plugin Eclipse ou Enide Studio ):
http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png
Nodeclipse est devenu #1 dans Eclipse Top 10 nouveaux Plugins pour 2013 . Il utilise un débogueur modifié V8 (à partir de Google Chrome Developer Tools pour Java).
Nodeclipse est un logiciel libre open-source publié au début de chaque mois .
Utilisant La Version Chrome 67.0.3396.62 ( + )
- Exécuter nœud app
node --inspecter-brk=0.0.0.0:9229 serveur.js(serveur de nom de fichier js)
- Parcourez votre application en chrome par exemple "localhost: port"
- Open DevTools.
- cliquez sur l'icône du noeud à côté de l'icône de l'appareil responsive.
il y aura une autre fenêtre DevTools qui s'ouvrira spécifiquement pour déboguer l'application node.
IntelliJ fonctionne merveilleusement pour le noeud.js.
de plus, IntelliJ supporte bien le "Code Assistance".
il y a beaucoup de possibilités...
- nœud comprend un utilitaire de débogage
- node-inspector
- code editors / IDEs (voir les instructions de débogage pour l'un des suivants))
en charge le Débogage est souvent mise en œuvre à l'aide de la v8 de Débogage Protocole ou le plus récent Chrome Débogage Protocole .
une façon rapide et sale de déboguer un petit noeud.les scripts js avec votre favori débogueur de navigateur serait d'utiliser browserify . Notez que cette approche ne fonctionne pas avec les applications qui nécessitent des bibliothèques natives d'E/S, mais elle est suffisante pour la plupart des petits scripts.
$ npm install -g browserify
déplacez maintenant tous vos appels var x = requires('x')
dans un fichier requires.js
et lancez:
$ browserify requires.js -s window -o bundle.js
(le revers de La médaille voici que vous devez soit déplacer ou commenter le requires
dans tous vos fichiers.)
Inclure bundle.js
dans un fichier HTML comme ceci:
<script type="text/javascript" src="bundle.js"></script>
maintenant chargez le fichier dans votre navigateur et appuyez sur F12 et viola: debug dans le navigateur.
le NetBeans IDE a eu noeud.prise en charge de js depuis version 8.1 :
<...>
Nouveautés
Node.js le Développement de l'Application
- Nouveau Noeud.js assistant de projet
- Nouveau Noeud.js Express wizard
- Éditeur JavaScript Amélioré
- nouveau support pour le noeud tournant.js applications
- nouveau support pour le noeud de débogage.js applications.
<...>
autres références:
je voudrais utiliser BON par Walmart Labs. Il fera le travail, et il est très flexible:
var hapi = require('hapi');
var good = require('good');
var server = hapi.createServer('localhost', 5000,{});
server.route({SOME ROUTE HERE});
server.start();
var options = {
subscribers: {
'console': ['ops', 'request', 'log', 'error'],
'http://localhost/logs': ['log']
}
};
server.pack.require('good', options, function (err) {
if (!err) {
console.log('Plugin loaded successfully');
}
});