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

Отчет об ошибках

Посмотрим правде в глаза, мы все любим хороший console.log («Ой, если вы сюда попали, лучше бегите».) И иногда это прекрасно работает, поэтому, если вы не хотите уходить слишком далеко от него, хотя бы добавьте некоторые побрякушки в ваших журналах с отладкой Visionmedia.

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

Как бы удобна ни была запись в журнал консоли, для профессиональной отладки вам нужно закатать рукава и застрять. Установите точки останова, пошагово просматривайте код, осмотрите области видимости и переменные, чтобы увидеть, что вызывает такое странное поведение.

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

Если, как и я, вы используете Webstorm, то вот вам полезное руководство по отладке.

наследие

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

логирование

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

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

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

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

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

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

node --inspect server.js 

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

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

  • Мастер создания нового Node.js
  • Новый мастер Node.js Express
  • Улучшенный редактор JavaScript
  • Новая поддержка для запуска приложений Node.js
  • Новая поддержка отладки приложений Node.js.

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

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

Следы стека

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

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector