Отладка node.js с помощью node -инспектор

Я пытаюсь отладить мое приложение nodejs, используя node -инспектор. Но Google Chrome не показывает код.

Я использую следующее,

Node.js: v0.10.26

Экспресс: 4.0.0

Node Инспектор: v0.7.3

Версия Google Chrome: 34.0.1847.131

Это то, что я делаю, чтобы запустить отладчик.

$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

В другой консоли

$ node --debug app.js 
debugger listening on port 5858
$

Затем запустили Google Chrome и отправились в

http://127.0.0.1:8080/debug?port=5858

Он открывает node -инспектор, но без кода. Все окна пусты.

Заметил, что я не получаю "Экспресс-сервер, прослушивающий порт 3000"

Пробовал все как node -инспектор не смог подключиться к node, но не повезло

Не удалось выяснить, чего я не вижу. Было бы замечательно, если бы у вас были какие-либо предложения. Я могу отлаживать свои приложения Node.js в Google Chrome.

Ответ 1

Попробуйте запустить node --debug-brk app.js вместо --debug. Ваше приложение не может приостанавливаться до того, как инспектор node подключится к процессу node. Использование --debug-brk заставит node сломаться в первой строке вашего приложения и дождитесь отладчика, подключенного к процессу. Загрузка веб-интерфейса node -inpector - это то, что заставляет node -инспектор присоединяться к вашему процессу node; почему вы включаете порт отладки node в строку запроса (localhost: 8080/debug? port = 5858). Вы сообщаете node -инспектор, какой порт он должен протянуть и подключиться.

Здесь представлен анимированный gif, показывающий полную установку и запуск node-inspector.

В gif я использую флаг --debug, потому что я не отлаживаю код, который запускается сразу при запуске. Я отлаживаю внутри обработчика запросов, который запускается только при запросе страницы. Таким образом, обновление страницы приводит к тому, что node-inspector разбивается на эту строку.

Я также собрал 15-минутный учебник YouTube некоторое время назад.

http://youtu.be/03qGA-GJXjI

Я надеюсь, что это поможет!

Ответ 2

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

Попробуйте node-inspector --no-preload

Ответ 3

Стандартная удаленная отладка полностью нарушена в node 6.5. Вместо этого он заменил новую внутреннюю функцию node

$ node --inspect --debug-brk build/server/server.js
Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
Debugger attached.

Смотрите здесь - http://arveknudsen.com/?p=346%3Fpage_id%3D346&print=pdf - для получения дополнительной информации

Ответ 4

enter image description here

В левой части вкладки Node Inspector, "Sources" есть "ящик с треугольником" - подсветка говорит "Показать навигатор". (См. Рисунок выше). Откройте это, чтобы найти файлы, которые вы хотите отлаживать, и поместите точку останова на код, который еще не запущен.

Также обратите внимание: если вы хотите отлаживать код, который запускается при запуске node, вам нужно использовать параметр --debug-brk при запуске. Затем, в Node Inspector, вам нужно будет запустить приложение (F8, чтобы запустить все). Эта опция вам понадобится, если вы хотите отладить весь код инициализации, например, запустить веб-браузер.

Ответ 5

node-debug --no-preload app.js

Это то, что работает для меня. Следуя this:

Мой script работает слишком быстро, чтобы подключить отладчик.

Отлаженный процесс должен быть запущен с помощью --debug-brk, таким образом, script приостанавливается в первой строке.

Примечание: node -debug добавляет эту опцию по умолчанию.