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

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

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

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

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

4b9b3361

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

227
ответ дан 29 марта '10 в 11:57
источник

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

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

npm install -g node-inspector

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

node-debug app.js
1211
ответ дан 15 окт. '10 в 20:17
источник

Отладка

Профилирование

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

Heapdumps

Flamegraphs

Tracing

Вход

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

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

Бенчмаркинг

Другие

Наследство

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

690
ответ дан 13 мая '13 в 0:37
источник

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

Узел встроенного отладчика GUI

Просто передайте флаг инспектора, и вам будет предоставлен 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
160
ответ дан 14 сент. '16 в 17:51
источник

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

Код VS дает аналогичный отладочный опыт, как вы могли бы в других IDE, таких как VS, Eclipse и т.д.

введите описание изображения здесь введите описание изображения здесь

59
ответ дан 19 февр. '16 в 13:21
источник

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

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

Мои единственные элементы "вопросов/пожеланий" - были:

  • Кажется, что на Mac больше ресурсов, чем Windows. Это больше не проблема в версии 6.
  • Было бы неплохо, если бы у него была поддержка Snippet (например, Sublime Text 2 - т.е. введите "fun" и нажмите "вкладка", чтобы вставить функция. См. комментарий @WickyNilliams ниже. С помощью Live Templates у вас также есть поддержка фрагментов.
53
ответ дан 03 мая '12 в 17:42
источник

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

screenshot

37
ответ дан 15 мая '13 в 1:21
источник

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

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

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

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

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

Трассировка стека

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

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

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


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

Если вам нравится смотреть видео (ы), то

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

введите здесь описание изображения

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

Софокл, Аякс

34
ответ дан 15 сент. '15 в 18:33
источник

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

22
ответ дан 02 мая '14 в 15:30
источник

Код Visual Studio имеет действительно приятную Node.js поддержку отладки. Он бесплатный, с открытым исходным кодом и кросс-платформенный и работает на Linux, OS X и Windows.

Вы даже можете отлаживать grunt и gulp задачи, если вам нужно...

20
ответ дан 09 сент. '15 в 3:08
источник

Я написал другой подход для отладки Node.js-кода, который является стабильным и чрезвычайно простым. Он доступен в https://github.com/s-a/iron-node.

Enter image description here

Открытый межсетевой визуальный отладчик с открытым исходным кодом.

Установка:

npm install iron-node -g;

Debug:

iron-node yourscript.js;

19
ответ дан 19 июля '15 в 18:10
источник

Я создал аккуратный маленький инструмент под названием pry.js, который может помочь вам.

Поместите простой оператор где-нибудь в свой код, запустите script нормально, а node остановит текущий поток, предоставив вам доступ ко всем вашим переменным и функциям. Просматривать/редактировать/удалять их по желанию!

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()
10
ответ дан 09 дек. '14 в 18:22
источник

Использование Chrome версии 67.0.3396.62 (+)

  1. Запустить приложение узла

узел --inspect-brk = 0.0.0.0: 9229 server.js (имя файла сервера js)

  1. Просмотрите ваше приложение в Chrome, например, "localhost: port"
  2. Откройте DevTools.
  3. Нажмите на значок узла рядом со значком адаптивного устройства.

enter image description here

Будет другое окно DevTools, которое будет появляться специально для отладки приложения узла.

enter image description here

9
ответ дан 04 июня '18 в 15:21
источник

Запустите процесс узла с помощью флага --inspect.

node --inspect index.js

а затем "Открыть chrome://inspect в хроме". Нажмите ссылку "Открыть выделенный DevTools для узла" или установите это расширение хром для быстрого открытия хром DevTools.

Для получения дополнительной информации обратитесь к этой ссылке

6
ответ дан 09 февр. '18 в 22:05
источник

Предполагая, что на вашем компьютере установлен node -инспектор (если нет, просто введите "npm install -g node-inspector" ), вам просто нужно запустить:

node-inspector & node --debug-brk scriptFileName.js

И вставьте URI из командной строки в браузер WebKit (Chrome/Safari).

6
ответ дан 29 апр. '13 в 4:20
источник

Если вам нужна мощная библиотека регистрации для Node.js, Tracer https://github.com/baryon/tracer - лучший выбор.

Он выводит сообщения журнала с меткой времени, именем файла, именем метода, номером строки, стеком путей или вызовов, поддержкой цветовой консоли и поддержкой базы данных, файла, потока транспорта. Я автор.

6
ответ дан 08 марта '12 в 4:46
источник

Существует новый проект Nodeclipse (в качестве плагина Eclipse или Enide Studio):

http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png

Nodeclipse стал # 1 в Eclipse Top 10 NEW Plugins для 2013. Он использует измененный отладчик V8 (из инструментов разработчика Google Chrome для Java).

Nodeclipse - бесплатное программное обеспечение с открытым исходным кодом выпущено в начале каждого месяца.

5
ответ дан 02 янв. '14 в 8:24
источник

Есть много возможностей...

Поддержка отладки часто реализуется с помощью v8 протокола отладки или более нового Протокол отладки Chrome.

4
ответ дан 21 янв. '17 в 9:13
источник

Быстрый и грязный способ отладки небольших сценариев Node.js с вашим любимым отладчиком браузера будет состоять в использовании браузера. Обратите внимание, что этот подход не работает с любыми приложениями, для которых требуются собственные библиотеки ввода-вывода, но он подходит для большинства небольших скриптов.

$ npm install -g browserify

Теперь переместите все ваши вызовы var x = requires('x') в файл requires.js и запустите:

$ browserify requires.js -s window -o bundle.js

(Недостатком здесь является то, что вам нужно либо перемещать, либо комментировать requires во всех ваших файлах.)

Включите bundle.js в файл HTML следующим образом:

<script type="text/javascript" src="bundle.js"></script>

Загрузите файл в свой браузер и нажмите F12 и альт: отлаживайте в браузере.

3
ответ дан 14 мая '15 в 21:20
источник

NetBeans У IDE была поддержка Node.js, поскольку версия 8.1:

<... >

Основные особенности функции

Node.js Разработка приложений

  • Новый мастер проекта Node.js
  • Новый Node.js Экспресс-мастер
  • Расширенный редактор JavaScript
  • Новая поддержка для запуска приложений Node.js
  • Новая поддержка отладки приложений Node.js.

<... >

Дополнительные ссылки:

3
ответ дан 24 нояб. '15 в 11:26
источник