Consider că depanarea este o parte crucială a ciclului de dezvoltare ca oricare alta. De aceea este întotdeauna o bună practică demistificarea misiunii de depanare, făcând-o mai ușoară și mai puțin consumatoare de timp, astfel încât să putem termina munca la timp și să reducem stresul.
La fel ca majoritatea limbilor aflate acolo, nodul oferă câteva instrumente excelente de depanare care fac defectele de cod ușor de găsit și fixate. Întotdeauna susțin utilizarea unui program de depanare, deoarece personal găsesc folosind debuggers elimină cu adevărat nevoia de presupuneri și ne face mai buni dezvoltatori în general.
Acest ghid este destinat dezvoltatorilor și administratorilor care lucrează deja cu Nodul. Aceasta presupune o înțelegere fundamentală a limbajului la un nivel practic.
Node.js include un utilitar complet de depanare în afara proceselor, accesibil printr-un protocol bazat pe TCP simplu și client încorporat de depanare.
De exemplu, pentru a utiliza depanatorul pentru a depana un fișier numit script.js
, puteți pur și simplu să apelați nodul folosind depanare
pavilion ca atare:
$ node depanare script.js < debugger listening on port 5858 connecting… ok debug>
Acum, că ați început o sesiune de depanare, oriunde în scriptul pe care îl apelați debugger
din va fi un breakpoint pentru depanator.
De exemplu, să adăugăm o declarație de depanare la script.js:
foo = 2; setTimeout (() => debugger; console.log ("bugger");, 1000); console.log ( 'de');
Acum, dacă executăm acest script, debuggerul va fi apelat la punctul nostru de întrerupere și putem controla controlul scriptului folosind cont
sau Următor →
comenzi (c
sau n
pe scurt).
Putem întrerupe execuția scenariului în orice moment folosind p
.
$ node depanare script.js < debugger listening on port 5858 connecting… ok break in /home/tom/web/envatodebug/myscript.js:1 1 foo = 5; 2 setTimeout(() => Debuggerul 3; depanare> cont < de break in /home/tom/web/envatodebug/myscript.js:3 1 foo = 5; 2 setTimeout(() => Debuggerul 3; 4 console.log ("bugger"); 5, 1000); debug> următoarea pauză în /home/tom/web/envatodebug/myscript.js:4 2 setTimeout (() => 3 debugger; 4 console.log ("bugger"); 5, 1000); 6 console.log ('de'); depanare> următor < bugger break in /home/tom/web/envatodebug/myscript.js:5 3 debugger; 4 console.log('bugger'); 5 , 1000); 6 console.log('de'); 7 debug> părăsi
$ node depanare script.js < debugger listening on port 5858 connecting… ok debug> repl Apăsați Ctrl + C pentru a lăsa replicarea replicării> foo 2> 2 + 2 4
Culegerea Read-Eval-Print-Loop a debuggerului vă permite să introduceți codul în mod interactiv în timpul execuției și, astfel, să accesați starea aplicației și toate variabilele și metodele acesteia la punctul de rupere a executării. Acesta este un instrument foarte puternic pe care îl puteți utiliza pentru a vă dezinstala rapid aplicația.
În general, REPL este disponibil ca independent și ca parte a programului de depanare și vă permite să rulați JavaScript în mod interactiv. De exemplu, tastați doar nodul
la prompt fără opțiuni, și vi se va da o interfață REPL pe care o puteți scrie cod și să vedeți ieșirea.
Anterior am menționat cont
și Următor →
(c
și n
), care ne permit să continuăm execuția codului odată ce a fost atins un punct de întrerupere. În afară de aceasta, pe măsură ce mergem prin cod, putem de asemenea să introducem o metodă sau să trecem la domeniul său de aplicare.
Utilizați comenzile Etapa
pentru a intra în și afară
pentru a ieși, sau s
și o
pe scurt.
Utilizare backtrace
sau bt
pentru a obține o ieșire a backtrace pentru cadrul de execuție curent.
Utilizare repornire
sau r
pentru a reporni scriptul de la începutul executării.
Utilizatorii avansați pot accesa și depanatorul prin pornirea Node.js cu --depanare
linia de comandă, sau alternativ prin semnalizarea unui proces Node.js existent cu SIGUSR1
.
Odată ce un proces a fost setat în modul de depanare în acest fel, acesta poate fi apoi conectat prin utilizarea programului de depanare Node.js fie utilizând pid
a procesului de rulare sau printr-o referință URI (de ex localhost: Port
) pentru a conecta depanatorul de ascultare:
nod de depanare -p
se conectează la proces prin pid
.nod de depanare
se conectează la proces prin URI, cum ar fi localhost: 5858
.În plus față de instrumentul de depanare CLI, Node Inspector oferă, de asemenea, un inspector GUI în interiorul browserului web (care în prezent acceptă numai Chrome și Opera).
Pentru a utiliza depanatorul, instalați pur și simplu așa:
npm instalează -g node-inspector
Acum, când avem instalat inspectorul Node, putem depana script.js cu:
node-debug script.js
Coaja dvs. va scoate acum următorul lucru și, probabil, deschideți browserul web la adresa URL dacă aveți setat Chrome sau Opera ca implicit în sistemul dvs. de dezvoltare.
Node Inspector este acum disponibil de la http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 Debugging 'script.js' Debugger ascultare pe portul 5858
În browserul dvs. web, veți putea acum să depanați aplicația într-un mediu similar cu pachetul de instrumente pentru dezvoltatori. Setarea punctelor de oprire și a codului de vizualizare este acum integrată în vizualizarea browserului dvs. se bucura!
Debugarea nu trebuie să fie un coșmar și nici nu trebuie să fie stresantă.
Setarea punctelor de întrerupere și trecerea prin cod este atât de simplă în Nod. Este o experiență foarte asemănătoare cu Ruby și dacă încercați să înțelegeți o aplicație care vi-a fost dată, deschiderea aplicației în modul de depanare și întreruperea execuției este o modalitate fantastică de a învăța într-un interval de timp rapid.