Вопрос

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

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

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

Должен быть лучший способ отладки.я знаю это Гугл Хром имеет отладчик командной строки.Доступен ли этот отладчик и для Node.js?

Это было полезно?

Решение 3

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

Другие советы

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

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

npm install -g node-inspector

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

node-debug app.js

Отладка

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

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

Heapdumps

Флеймграфы

Отслеживание

Ведение журнала

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

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

Бенчмаркинг

Другой

Наследие

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

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

Nodes builtin GUI debugger

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

node --inspect server.js

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

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

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

# start the debugger with inspect
inspect script.js

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

node debug script.js

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

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

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

enter image description here enter image description here

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

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

Мои единственные «проблемы»/пункты списка желаний являются были:

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

Тезей — это исследовательский проект Adobe, который позволяет отлаживать код Node.js в их редакторе с открытым исходным кодом. Кронштейны.Он имеет некоторые интересные функции, такие как покрытие кода в реальном времени, ретроактивная проверка, асинхронное дерево вызовов.

screenshot

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

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

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

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

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

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

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

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

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


Несколько полезных статей см.

Если вам хочется посмотреть видео(а), то

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

enter image description here

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

Софокл, Аякс

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

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

Вы даже можете отлаживать задачи хрюкать и глотать, если вам нужно...

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

Enter image description here

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

Монтаж:

npm install iron-node -g;

Отлаживать:

iron-node yourscript.js;

Если вы используете Атом IDE, вы можете установить node-debugger упаковка.

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

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

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

  1. Просмотрите свое приложение в Chrome, например.«локальный хост: порт»
  2. Откройте Инструменты разработчика.
  3. Щелкните значок узла рядом со значком адаптивного устройства.

enter image description here

Появится еще одно окно DevTools, предназначенное специально для отладки приложения узла.

enter image description here

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

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

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()

Есть встроенная командная строка клиент отладчика внутри Node.js.Cloud 9 IDE тоже довольно приятный (визуальный) отладчик.

Visual Studio кодекса будет работать для нас в отладке.

Я собрал короткометражку Руководство по отладке Node.js по использованию инспектор узлов для тех, кто не знает, с чего начать.

Используйте Вебшторм!Он идеально подходит для отладки приложений Node.js.Имеет встроенный отладчик.Ознакомьтесь с документами здесь: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html

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

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

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

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

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

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

node --inspect index.js

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

Для получения дополнительной информации см. этот связь

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

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

Существует новый открытый исходный код Нодеклипс проект (как плагин Eclipse или Эниде Студия):

Nodeclipse стал номером 1 в 10 лучших НОВЫХ плагинов Eclipse на 2013 год.Он использует модифицированный V8 отладчик (из инструментов разработчика Google Chrome для Java).

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

IntelliJ прекрасно работает для Node.js.

Кроме того, IntelliJ хорошо поддерживает «Помощь по коду».

А NetBeans С тех пор в IDE появилась поддержка Node.js. версия 8.1:

<...>

Основные характеристики новых функций

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

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

<...>

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

  1. NetBeans Wiki / NewAndNoteworthyNB81.
  2. Приложение Node.js Express в среде IDE NetBeans, Geertjan-Oracle.

Используйте эти команды

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect

Быстрый и простой способ отладки небольших скриптов 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 и альт:отладка в браузере.

ndb — это улучшенный способ отладки Node.js, реализованный с помощью Chrome DevTools.

https://github.com/GoogleChromeLabs/ndb

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top