Ответ 1
Отладчик V8, выпущенный как часть инструментов разработчика Google Chrome, может использоваться для отладки сценариев Node.js. Подробное объяснение того, как это работает, можно найти в вики Node.js GitHub.
Как отлаживать серверное приложение Node.js?
В настоящее время я в основном использую отладочную информацию с инструкциями печати следующим образом:
sys.puts(sys.inspect(someVariable));
Должен быть лучший способ отладки. Я знаю, что Google Chrome имеет отладчик командной строки. Этот отладчик доступен и для Node.js?
Отладчик V8, выпущенный как часть инструментов разработчика Google Chrome, может использоваться для отладки сценариев Node.js. Подробное объяснение того, как это работает, можно найти в вики Node.js GitHub.
node-inspector может спасти день! Используйте его из любого браузера, поддерживающего WebSocket. Точки останова, профилировщик, livecoding и т.д. Это действительно потрясающе.
Установите его с помощью:
npm install -g node-inspector
Затем запустите:
node-debug app.js
node --prof ./app.js
node --prof-process ./the-generated-log-file
Библиотеки, которые выводят отладочную информацию
Библиотеки, улучшающие информацию трассировки стека
ab -n 100000 -c 1 http://127.0.0.1:9778/
Они используются для работы, но больше не поддерживаются или больше не применяются к современным версиям узлов.
Просто передайте флаг инспектора, и вам будет предоставлен 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
Node.js версия 0.3.4+ имеет встроенную поддержку отладки.
node debug script.js
Вручную: http://nodejs.org/api/debugger.html
Код Visual Studio будет моим выбором для отладки. Нет накладных расходов на установку каких-либо инструментов или npm install
.
Просто установите начальную точку вашего приложения в package.json и VSCode автоматически создаст файл конфигурации внутри вашего решения. Он основан на Electron, на котором построены редакторы, такие как Atom.
Код VS дает аналогичный отладочный опыт, как вы могли бы в других IDE, таких как VS, Eclipse и т.д.
Я лично использую JetBrains WebStorm, так как это единственная JavaScript IDE, которую я нашел, которая отлично подходит как для внешнего интерфейса, так и для бэкэнд-кода JavaScript.
Он работает на нескольких ОС и имеет Node.js отладочную встроенную (а также тонну других вещей) (http://www.jetbrains.com/webstorm/features/index.html).
Мои единственные элементы "вопросов/пожеланий" - были:
Theseus - это проект исследования Adobe, который позволяет отлаживать ваш код Node.js в редакторе Open Source Brackets. Он имеет некоторые интересные функции, такие как покрытие кода в реальном времени, ретроактивное обследование, асинхронное дерево вызовов.
Здесь много замечательных ответов, но я хотел бы добавить свое мнение (исходя из того, как мой подход развился)
Посмотрим правде в глаза, мы все любим хороший console.log('Uh oh, if you reached here, you better run.')
, и иногда это отлично работает, поэтому, если вы не согласны с тем, чтобы двигаться слишком далеко от него, по крайней мере, добавьте bling в свои журналы с помощью Отладка Visionmedia.
Так же удобно, как ведение журнала консоли, чтобы отлаживать профессионально, вам нужно засучить рукава и застрять. Установите точки останова, выполните свой код, просмотрите области и переменные, чтобы узнать, что вызывает это странное поведение. Как отмечали другие, node-inspector действительно является пчелиными колени. Он делает все, что вы можете сделать со встроенным отладчиком, но используя этот знакомый интерфейс Chrome DevTools. Если, как и я, вы используете Webstorm, тогда здесь является удобным руководством для отладки оттуда.
По умолчанию мы не можем проследить ряд операций в разных циклах цикла событий (тики). Чтобы обойти это, посмотрите longjohn (но не на производстве!).
С Node.js мы можем ожидать, что серверный процесс будет оставаться на значительное время. Что вы делаете, если думаете, что это вызвало некоторые неприятные утечки? Используйте heapdump и Chrome DevTools, чтобы сравнить некоторые снимки и посмотреть, что меняется.
Для некоторых полезных статей ознакомьтесь с
Если вам нравится смотреть видео (ы), то
Какой бы путь вы ни выбрали, просто убедитесь, что вы понимаете, как вы отлаживаете
Это болезненная вещь
Чтобы посмотреть на свои проблемы и узнать Что вы сами и никто другой не сделал этоСофокл, Аякс
Node.js Инструменты для Visual Studio 2012 или 2013 включает отладчик. В обзоре здесь говорится: "Node.js Инструменты для Visual Studio включают полную поддержку отладки node приложений". Будучи новичком в Node.js, но имея фон в .NET, я нашел, что это добавление является отличным способом отладки приложений Node.js.
Код Visual Studio имеет действительно приятную Node.js поддержку отладки. Он бесплатный, с открытым исходным кодом и кросс-платформенный и работает на Linux, OS X и Windows.
Вы даже можете отлаживать grunt и gulp задачи, если вам нужно...
Я написал другой подход к отладке кода Node.js, который стабилен и чрезвычайно прост. Он доступен на https://github.com/s-a/iron-node.
Кроссплатформенный визуальный отладчик с открытым исходным кодом.
Установка:
npm install iron-node -g;
Debug:
iron-node yourscript.js;
Если вы используете Atom IDE, вы можете установить пакет node-debugger
.
Использование Chrome версии 67.0.3396.62 (+)
узел --inspect-brk = 0.0.0.0: 9229 server.js (имя файла сервера js)
Будет другое окно DevTools, которое будет появляться специально для отладки приложения узла.
В Node.js. есть встроенная командная строка клиента отладчика. В Cloud 9 IDE также есть довольно приятный (визуальный) отладчик.
Я создал аккуратный маленький инструмент под названием 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()
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 для узла" или установите это расширение хром для быстрого открытия хром DevTools.
Для получения дополнительной информации обратитесь к этой ссылке
Если вам нужна мощная библиотека журналов для Node.js, то лучше выбрать Tracer https://github.com/baryon/tracer.
Он выводит сообщения журнала с меткой времени, именем файла, именем метода, номером строки, путем или стеком вызовов, поддерживает цветовую консоль, а также легко поддерживает базу данных, файл, транспорт потока. Я автор.
Предполагая, что на вашем компьютере установлен node -инспектор (если нет, просто введите "npm install -g node-inspector" ), вам просто нужно запустить:
node-inspector & node --debug-brk scriptFileName.js
И вставьте URI из командной строки в браузер WebKit (Chrome/Safari).
Просто для полноты:
Плагин PyCharm 3.0 + Node.js предлагает потрясающий опыт разработки + запуска + отладки.
Существует новый проект Nodeclipse с открытым исходным кодом (в виде плагина Eclipse или Enide Studio):
Nodeclipse стал # 1 в Топ-10 новых плагинов Eclipse для 2013. Он использует измененный отладчик V8 (из Google Chrome Developer Tools для Java).
Nodeclipse - это бесплатное программное обеспечение с открытым исходным кодом , выпускаемое в начале каждого месяца.
Есть много возможностей...
Поддержка отладки часто реализуется с использованием протокола отладки v8 или более нового протокола отладки Chrome.
IntelliJ прекрасно работает для Node.js.
Кроме того, IntelliJ хорошо поддерживает "Code Assistance".
NetBeans У IDE была поддержка Node.js, поскольку версия 8.1:
<... >
Основные особенности функции
Node.js Разработка приложений
- Новый мастер проекта Node.js
- Новый Node.js Экспресс-мастер
- Расширенный редактор JavaScript
- Новая поддержка для запуска приложений Node.js
- Новая поддержка отладки приложений Node.js.
<... >
Дополнительные ссылки:
Используйте эти команды
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