Отладка 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 добавляет эту опцию по умолчанию.