Как отладить серверное приложение Node.js?
Прямо сейчас я в основном использую отладку предупреждений с такими инструкциями печати:
sys.puts(sys.inspect(someVariable));
Должен быть лучший способ отладки. Я знаю, что в Google Chrome есть отладчик командной строки. Этот отладчик также доступен для Node.js?
javascript
node.js
debugging
google-chrome-devtools
Фабиан Якобс
источник
источник
--inspect-brk
INSTEAD OF,--inspect
если вы хотите отлаживать реальный код сервера во время загрузки. См stackoverflow.com/questions/59596138Ответы:
узел-инспектор может спасти день! Используйте его из любого браузера, поддерживающего WebSocket . Точки останова, профилировщик, livecoding и т. Д. Это действительно круто.
Установите его с помощью:
Затем запустите:
источник
Отладка
Профилирование
node --prof ./app.js
node --prof-process ./the-generated-log-file
Heapdumps
Flamegraphs
трассировка
логирование
Библиотеки, которые выводят отладочную информацию
Библиотеки, улучшающие информацию трассировки стека
Бенчмаркинг
ab -n 100000 -c 1 http://127.0.0.1:9778/
Другой
наследие
Они используются для работы, но больше не поддерживаются или больше не применяются к современным версиям узлов.
источник
look
модуль, как указано в stackoverflow.com/questions/12864221/nodejs-memory- профилированиеnprof
+v8.log
отnode --prof
.V8 отладчик выпущен как часть Google Инструменты разработчика Chrome можно использовать для отладки Node.js сценариев. Подробное объяснение того, как это работает, можно найти в вики- сайте Node.js GitHub .
источник
https://medium.com/@paul_irish/debugging-node-js-nightlies-with-chrome-devtools-7c4a1b95ae27#.fitvuaumt
Node имеет собственный встроенный отладчик GUI начиная с версии 6.3 (с использованием Chrome DevTools)
Просто передайте флаг инспектора, и вы получите URL для инспектора:
Вы также можете разбить первую строку, передав
--inspect-brk
вместо этого.источник
Node.js версии 0.3.4+ имеет встроенную поддержку отладки.
node debug script.js
Руководство: http://nodejs.org/api/debugger.html
источник
--debug
чтобыdebug
без черточек. Вот так я наконец-то и начал работать. Это сбивает с толку--debug
иdebug
делает две разные вещи.app is already running...
», когда я пытаюсь продолжить и сталкиваюсь с оператором, который пытается получить ввод, он возвращает меня обратно в приглашение отладки, вместо того, чтобы позволить мне ввести требуемый ввод.Visual Studio Code будет моим выбором для отладки. Никаких накладных расходов на установку каких-либо инструментов или
npm install
вещей. Просто установите начальную точку вашего приложения в package.json, и VSCode автоматически создаст файл конфигурации внутри вашего решения. ОноснованнаElectron, на котором основаны такие редакторы, как Atom.источник
Я лично использую JetBrains WebStorm, так как это единственная найденная мной JavaScript IDE, которая отлично подходит как для внешнего, так и для внутреннего JavaScript.
Он работает на нескольких ОС и имеет встроенную отладку Node.js (а также множество других вещей) ( http://www.jetbrains.com/webstorm/features/index.html ).
Мои единственные «вопросы» / пожелания
находятсябыли :Похоже, что на Mac больше ресурсов, чем на WindowsЭто больше не кажется проблемой в версии 6.Было бы хорошо, если бы у него была поддержка Snippet (как у Sublime Text 2). - то есть наберите 'fun' и нажмите 'tab', чтобы добавить функцию.См. Комментарий @WickyNilliams ниже - с живыми шаблонами у вас также есть поддержка фрагментов.источник
Здесь много хороших ответов, но я бы хотел добавить свою точку зрения (основываясь на том, как развивался мой подход).
Отчет об ошибках
Посмотрим правде в глаза, мы все любим хорошее,
console.log('Uh oh, if you reached here, you better run.')
а иногда это прекрасно работает, поэтому, если вы не решаетесь отойти слишком далеко от него, по крайней мере, добавьте немного логов в ваши журналы с помощью отладки Visionmedia .Интерактивная отладка
Как бы удобна ни была запись в журнал консоли, для профессиональной отладки вам нужно закатать рукава и застрять. Установите точки останова, пошагово просматривайте код, осмотрите области видимости и переменные, чтобы увидеть, что вызывает такое странное поведение. Как уже упоминали другие, узел-инспектор действительно является коленями пчел. Он делает все, что вы можете делать со встроенным отладчиком, но с помощью знакомого интерфейса Chrome DevTools. Если, как и я, вы используете Webstorm , то вот вам полезное руководство по отладке.
Следы стека
По умолчанию мы не можем проследить последовательность операций в разных циклах цикла событий (тики). Чтобы обойти это, взгляните на Longjohn (но не в производстве!).
Утечки памяти
С Node.js мы можем ожидать, что процесс сервера будет работать в течение значительного времени. Что вы делаете, если думаете, что произошли некоторые неприятные утечки? Используйте heapdump и Chrome DevTools, чтобы сравнить некоторые снимки и увидеть, что меняется.
Для некоторых полезных статей, проверьте
Если вы хотите посмотреть видео,
Какой бы путь вы ни выбрали, просто убедитесь, что вы понимаете, как вы отлаживаете
источник
Theseus - это проект, разработанный компанией Adobe Research, который позволяет отлаживать код Node.js в их редакторе Open Source Brackets . Он имеет несколько интересных функций, таких как покрытие кода в реальном времени, обратная проверка, дерево асинхронных вызовов.
источник
Инструменты Node.js для Visual Studio 2012 или 2013 включают отладчик. Обзор здесь гласит: «Инструменты Node.js для Visual Studio включают полную поддержку приложений отладки узлов». Будучи новичком в Node.js, но имея опыт работы с .NET, я обнаружил, что это дополнение является отличным способом отладки приложений Node.js.
источник
Visual Studio Code имеет действительно хорошую поддержку отладки Node.js. Он бесплатный, с открытым исходным кодом и кроссплатформенный и работает на Linux, OS X и Windows.
Вы даже можете отлаживать задачи grunt и gulp , если вам нужно ...
источник
Я написал другой подход к отладке кода Node.js, который стабилен и чрезвычайно прост. Он доступен по адресу https://github.com/sa/iron-node .
Кроссплатформенный визуальный отладчик с открытым исходным кодом.
Установка:
npm install iron-node -g;
Debug:
iron-node yourscript.js;
источник
Если вы используете Atom IDE , вы можете установить
node-debugger
пакет.источник
Использование Chrome версии 67.0.3396.62 (+)
Будет другое окно DevTools, которое будет появляться специально для отладки приложения узла.
источник
Я создал небольшой инструмент под названием pry.js, который может вам помочь.
Поместите простое утверждение где-нибудь в свой код, запустите ваш скрипт нормально, и узел остановит текущий поток, предоставляя вам доступ ко всем вашим переменным и функциям. Просмотр / редактирование / удаление их по желанию!
источник
В Node.js. есть встроенный клиент отладчика командной строки. В Cloud 9 IDE также есть довольно приятный (визуальный) отладчик .
источник
Visual Studio Code будет работать для нас при отладке.
источник
Я собрал короткий учебник по отладке Node.js по использованию инспектора узлов для тех, кто не знает, с чего начать.
источник
Используйте Webstorm! Он идеально подходит для отладки приложений Node.js. Он имеет встроенный отладчик. Проверьте документы здесь: https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
источник
Запустите процесс вашего узла с флагом --inspect .
node --inspect index.js
а затем открыть
chrome://inspect
в хром. Нажмите на ссылку «Открыть выделенный DevTools для узла» или установите это расширение Chrome, чтобы легко открывать Chrome DevTools.Для получения дополнительной информации обратитесь к этой ссылке
источник
Если вам нужна мощная библиотека журналов для Node.js, лучше использовать Tracer https://github.com/baryon/tracer .
Он выводит сообщения журнала с отметкой времени, именем файла, именем метода, номером строки, путем или стеком вызовов, поддерживает цветовую консоль, а также легко поддерживает базу данных, файл, транспорт потока. Я автор.
источник
Предполагая, что на вашем компьютере установлен нод-инспектор (если нет, просто введите 'npm install -g node-inspector'), вам просто нужно выполнить:
И вставьте URI из командной строки в браузер WebKit (Chrome / Safari).
источник
Просто для полноты:
PyCharm 3,0 + Node.js Плагин предлагает удивительный опыт разработки + бег + отладки .
источник
IntelliJ прекрасно работает для Node.js.
Кроме того, IntelliJ хорошо поддерживает «Code Assistance».
источник
Есть много возможностей ...
Поддержка отладки часто реализуется с использованием протокола отладки v8 или более нового протокола отладки Chrome .
источник
Существует новый проект Nodeclipse с открытым исходным кодом (в виде плагина Eclipse или Enide Studio ):
Nodeclipse стал № 1 в топ-10 новых плагинов Eclipse на 2013 год . Он использует модифицированный отладчик V8 (из Google Chrome Developer Tools для Java).
Nodeclipse - это бесплатное программное обеспечение с открытым исходным кодом, выпускаемое в начале каждого месяца .
источник
NetBeans IDE была Node.js поддержки начиная с версии 8.1 :
Дополнительные ссылки:
источник
Используйте эти команды
источник
ndb - улучшенный опыт отладки для Node.js, включенный Chrome DevTools
https://github.com/GoogleChromeLabs/ndb
источник
Быстрый и грязный способ отладки небольших скриптов Node.js с помощью вашего любимого отладчика браузера - использовать browserify . Обратите внимание, что этот подход не работает с любыми приложениями, которые требуют собственных библиотек ввода / вывода, но он достаточно хорош для большинства небольших сценариев.
Теперь переместите все ваши
var x = requires('x')
звонки вrequires.js
файл и запустите:(Недостатком здесь является то, что вы должны либо перемещать, либо комментировать
requires
файлы).Включите
bundle.js
в файл HTML примерно так:Теперь загрузите файл в ваш браузер и нажмите F12и отладьте в браузере.
источник