Я чувствую, что отладка является такой же важной частью цикла разработки, как и любая другая. Поэтому всегда полезно демистифицировать работу по отладке, делая ее более простой и менее трудоемкой, чтобы мы могли закончить работу вовремя и уменьшить стресс.
Как и большинство языков, Node предоставляет отличные инструменты отладки, которые позволяют легко находить и исправлять дефекты в коде. Я всегда выступаю за использование отладчика, потому что лично я нахожу, что использование отладчиков действительно исключает необходимость каких-либо догадок и делает нас лучшими разработчиками в целом.
Это руководство предназначено для разработчиков и администраторов, которые уже работают с Node. Это предполагает фундаментальное понимание языка на практическом уровне.
Использование отладчика
Node.js включает в себя полнофункциональную утилиту отладки вне процесса, доступную через простой протокол на основе TCP и встроенный клиент отладки.
 Например, чтобы использовать отладчик для отладки файла с именем script.js , вы можете просто вызвать узел, используя флаг debug следующим образом: 
| 1 2 3 4 | $ node debug script.js < debugger listening on port 5858 connecting… ok debug> | 
Контрольные точки
  Теперь, когда вы начали сеанс отладки, в любом месте вашего скрипта, из которого вы вызываете debugger будет точка останова для отладчика. 
Так, например, давайте добавим оператор отладчика в script.js:
| 1 2 3 4 5 6 | foo = 2; setTimeout(() => {   debugger;   console.log(‘bugger’); }, 1000); console.log(‘de’); | 
  Теперь, если мы запустим этот скрипт, на нашей точке останова будет вызван отладчик, и мы можем контролировать управление скриптом с помощью команд cont или next (для краткости c или n ). 
  Мы можем приостановить выполнение скрипта в любое время, используя p . 
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | $ node debug script.js < debugger listening on port 5858 connecting… ok break in /home/tom/web/envatodebug/myscript.js:1   1 foo = 5;   2 setTimeout(() => {   3 debugger; debug> cont < de break in /home/tom/web/envatodebug/myscript.js:3   1 foo = 5;   2 setTimeout(() => {   3 debugger;   4 console.log(‘bugger’);   5 }, 1000); debug> next break in /home/tom/web/envatodebug/myscript.js:4   2 setTimeout(() => {   3 debugger;   4 console.log(‘bugger’);   5 }, 1000);   6 console.log(‘de’); debug> next < bugger break in /home/tom/web/envatodebug/myscript.js:5   3 debugger;   4 console.log(‘bugger’);   5 }, 1000);   6 console.log(‘de’);   7 debug> quit | 
РЕПЛ
| 1 2 3 4 5 6 7 8 9 | $ node debug script.js < debugger listening on port 5858 connecting… ok debug> repl Press Ctrl + C to leave debug repl > foo 2 > 2+2 4 | 
Read-Eval-Print-Loop отладчика позволяет вводить код в интерактивном режиме во время выполнения и, таким образом, получать доступ к состоянию приложения и всех его переменных и методов в момент прерывания выполнения. Это очень мощный инструмент, который вы можете использовать для быстрой дезинфекции вашего приложения.
  В общем, REPL доступен как автономно и как часть отладчика, и он позволяет вам запускать JavaScript в интерактивном режиме.  Например, просто введите в node строке node без опций, и вам будет предоставлен интерфейс REPL, в который вы можете написать код и просмотреть вывод. 
Вступление и выход
  Ранее я упоминал команды cont и next ( c и n ), которые позволяют нам продолжать выполнение кода после достижения точки останова.  В дополнение к этому, проходя код, мы также можем войти в метод или выйти в родительскую область. 
  Используйте команды step для входа и out для выхода или s и o для краткости. 
обратная трассировка
  Используйте backtrace или bt чтобы получить вывод обратной трассировки для текущего кадра выполнения. 
Перезапуск
  Используйте restart или r чтобы перезапустить ваш скрипт с начала выполнения. 
Альтернативные способы подключения к отладчику
  Опытные пользователи могут получить доступ к отладчику также, запустив Node.js с флагом командной строки --debug , или, альтернативно, сигнализируя существующему процессу Node.js с помощью SIGUSR1 . 
  После того, как процесс был переведен в режим отладки таким образом, к нему можно подключиться с помощью отладчика Node.js, используя либо pid запущенного процесса, либо через ссылку URI (например, localhost:port ) для подключения прослушивания. отладчик: 
-   node debug -p <pid>подключается к процессу черезpid.
-   node debug <URI>подключается к процессу через URI, напримерlocalhost:5858.
Использование Node Inspector
В дополнение к инструменту отладки CLI, Node Inspector также предоставляет инспектор GUI внутри веб-браузера (в настоящее время поддерживается только Chrome и Opera).
Чтобы использовать отладчик, просто установите так:
 npm install -g node-inspector  
Теперь, когда у нас установлен инспектор Node, мы можем отладить наш script.js с помощью:
 node-debug script.js  
Теперь ваша оболочка выведет следующее и, вероятно, откроет веб-браузер с URL-адресом, если Chrome или Opera установлены в качестве операционной системы по умолчанию в вашей операционной системе.
| 1 2 3 4 | Node Inspector is now available from http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 Debugging `script.js` Debugger listening on port 5858 | 
В вашем веб-браузере вы сможете отлаживать приложение в среде, аналогичной пакету инструментов разработчика. Установка точек останова и просмотр кода теперь интегрированы с вашим браузером. Наслаждайтесь!
Вывод
Отладка не должна быть кошмаром и стрессом.
Установка точек останова и пошаговое выполнение кода в Node очень проста. Это очень похоже на Ruby, и если вы пытаетесь понять, какое приложение вы получили, откройте приложение в режиме отладки и приостановите выполнение — это фантастический способ обучения в короткие сроки.