Как отлаживать приложения Node.js? - PullRequest
1501 голосов
/ 16 декабря 2009

Как отладить серверное приложение Node.js?

Сейчас я в основном использую отладку оповещений с такими инструкциями печати:

sys.puts(sys.inspect(someVariable));

Должен быть лучший способ отладки. Я знаю, что Google Chrome имеет отладчик командной строки. Этот отладчик также доступен для Node.js?

Ответы [ 35 ]

1235 голосов
/ 15 октября 2010

узел-инспектор может спасти день! Используйте его из любого браузера, поддерживающего WebSocket . Точки останова, профилировщик, livecoding и т. Д. Это действительно круто

Установите его с помощью:

npm install -g node-inspector

Затем запустите:

node-debug app.js
711 голосов
/ 13 мая 2013

1001 * Debugging * Гид Джойента Отладчик Узел инспектора Код Visual Studio Cloud9 Кронштейны Профилирование

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

Heapdumps

Flamegraphs

Трассировка

Вход

Библиотеки, которые выводят отладочную информацию

Библиотеки, улучшающие информацию трассировки стека

Бенчмаркинг

Другое

Наследие

Они используются для работы, но больше не поддерживаются или больше не применяются к современным версиям узлов.

240 голосов
/ 29 марта 2010

Отладчик V8 , выпущенный как часть Google Chrome Developer Tools , можно использовать для отладки сценариев Node.js. Подробное объяснение того, как это работает, можно найти в Node.js GitHub wiki .

173 голосов
/ 14 сентября 2016

Узел имеет собственный встроенный GUI-отладчик, начиная с версии 6.3 (с использованием Chrome DevTools)

Nodes builtin GUI debugger

Просто передайте флаг инспектора, и вам будет предоставлен URL-адрес инспектора:

node --inspect server.js

Вы также можете разбить первую строку, передав вместо нее --inspect-brk.

Чтобы открыть окно Chrome автоматически, используйте модуль inspect-process .

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js
88 голосов
/ 16 января 2011

Node.js версии 0.3.4+ имеет встроенную поддержку отладки.

node debug script.js

Руководство: http://nodejs.org/api/debugger.html

63 голосов
/ 19 февраля 2016

Код Visual Studio будет моим выбором для отладки. Никаких накладных расходов на установку каких-либо инструментов или npm install вещей. Просто установите начальную точку вашего приложения в package.json, и VSCode автоматически создаст файл конфигурации внутри вашего решения. Он построен на Electron , на котором построены такие редакторы, как Atom.

VS Code дает такой же опыт отладки, как вы могли бы иметь имел в других IDE, таких как VS, Eclipse и т. д.

enter image description here enter image description here

56 голосов
/ 03 мая 2012

Я лично использую JetBrains WebStorm , поскольку это единственная найденная мной среда IDE JavaScript, которая отлично подходит как для внешнего, так и для внутреннего JavaScript.

Он работает на нескольких ОС и имеет встроенную отладку Node.js (а также кучу других вещей) (http://www.jetbrains.com/webstorm/features/index.html).

Мои единственные 'вопросы' / список желаний были :

  1. Похоже, что на Mac она более требовательна к ресурсам, чем Windows В версии 6 эта проблема больше не возникает.
  2. Было бы неплохо, если бы у него была поддержка Snippet (например, Sublime Text 2 - т.е. введите «fun» и нажмите «tab», чтобы добавить функцию. Смотрите Комментарий WickyNilliams ниже - С живыми шаблонами у вас также есть поддержка фрагментов.
39 голосов
/ 15 мая 2013

Theseus - это проект, разработанный компанией Adobe Research, который позволяет отлаживать код Node.js в их редакторе с открытым исходным кодом Скобки . Он имеет некоторые интересные функции, такие как покрытие кода в реальном времени, обратная проверка, дерево асинхронных вызовов.

screenshot

36 голосов
/ 15 сентября 2015

Здесь много хороших ответов, но я бы хотел добавить свою точку зрения (основываясь на том, как развивался мой подход)

Журналы отладки

Посмотрим правде в глаза, мы все любим хороший console.log('Uh oh, if you reached here, you better run.'), а иногда это прекрасно работает, поэтому, если вы не решаетесь отойти слишком далеко от него, хотя бы добавьте немного логов в свои журналы с помощью отладка Visionmedia .

Интерактивная отладка

Как бы удобна ни была запись в журнал консоли, для профессиональной отладки вам нужно закатать рукава и застрять. Установите точки останова, пошагово просматривайте код, осмотрите области видимости и переменные, чтобы увидеть, что вызывает такое странное поведение. Как уже упоминали другие, узел-инспектор действительно является коленями пчел. Он делает все, что вы можете делать со встроенным отладчиком, но с помощью знакомого интерфейса Chrome DevTools. Если, как и я, вы используете Webstorm , то здесь - это удобное руководство по отладке оттуда.

Следы стека

По умолчанию мы не можем проследить серию операций в разных циклах цикла событий (тики). Чтобы обойти это, взгляните на longjohn (но не в производстве!).

Утечки памяти

С Node.js мы можем ожидать, что процесс сервера будет работать в течение значительного времени. Что вы делаете, если думаете, что произошли некоторые неприятные утечки? Используйте heapdump и Chrome DevTools, чтобы сравнить некоторые снимки и увидеть, что меняется.


Для некоторых полезных статей, проверьте

Если вы хотите посмотреть видео,

Какой бы путь вы ни выбрали, просто убедитесь, что вы понимаете, как вы отлаживаете

enter image description here

Это болезненная вещь
Чтобы посмотреть на свои проблемы и знать
Это ты сам и никто другой не сделал это

Софокл, Аякс

24 голосов
/ 02 мая 2014

Node.js Инструменты для Visual Studio 2012 или 2013 включают отладчик. Обзор здесь гласит: «Node.js Tools для Visual Studio включает полную поддержку отладки приложений узла». Будучи новичком в Node.js, но имея опыт работы с .NET, я обнаружил, что это дополнение является отличным способом отладки приложений Node.js.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...