Когда журналов консоли недостаточно
Что вы делаете, когда видите это?
Вы можете проверить каждую строчку кода и попытаться найти опечатку. Если вы не обнаружите опечаток, вы можете начать использовать console.logs, чтобы увидеть вывод кода, что является проблемой. Конечно, есть методы получше?
Отладка серверного кода javascript с помощью журналов консоли архаична.
Журналов консоли просто недостаточно. Они требуют, чтобы мы медленно пошли по очереди, каждый раз перезагружая наш сервер. Журналы консоли также загромождают нашу кодовую базу ненужным кодом, и их удаление требует усилий.
Пример A: сколько энергии нужно, чтобы обнаружить журнал консоли среди фиктивных данных и других процессов?
Очень устрашающе. Так не должно быть.
Гораздо более эффективный способ сделать что-то - отладка с помощью точек останова. С помощью точек останова мы можем перешагнуть через стек вызовов и цикл событий, чтобы диагностировать проблему.
Вы уловили суть. Пора изучить другие варианты. Какие есть варианты? Я рада, что вы спросили!
Кстати, в конце статьи есть очень вкусное угощение - (прямо сказать!).
В Node есть встроенный инспектор!
Правильно: на самом деле в Node есть встроенный инспектор. Инспектор использует средство просмотра протокола отладчика v8 под капотом.
Позволь мне показать тебе. Начнем новый проект узла:
Запускаем наш проект и устанавливаем экспресс и nodemon:
Теперь у нас есть базовый экспресс-сервер. Но вместо того, чтобы использовать команду node server.js
традиционным способом, мы добавляем дополнительный флаг к нашей команде узла, инспектору.
--inspect
сообщает Node, что нужно открыть новый протокол отладки.
Когда мы запускаем наш сервер с инспектором, вот что выводит консоль:
Милая, сработало! Откройте Chrome по адресу http: // localhost: 3000 с помощью инструментов разработчика. Заметили что-то дополнительное?
Узел внутри нашего браузера? Да, в самом деле! Мы по-прежнему используем наше приложение, как и раньше - localhost:3000
http://0.0.0.0:9229/
порт предназначен для использования DevTools.
Что делает Node Inspector?
Node Inspector позволяет вам использовать пользовательский интерфейс DevTools с родным отладчиком Node. DevTools теперь может напрямую подключаться к процессу Node!
Если вы знаете, как заставить это работать в Firefox или Safari, сообщите нам об этом в комментариях.
Использование отладчика
Использование отладчика Chrome аналогично использованию отладчика для клиентского кода. Вы устанавливаете точки останова, выполняете код, переходите через точки останова и находите ошибку.
Вы представляете, насколько это может быть полезно, когда у нас есть ошибка внутри большого контроллера? У нас есть доступ к отладчику, стеку вызовов, областям действия, локальным переменным, глобальным переменным и т. Д. У нас есть так много полезных инструментов!
Переходя на другой уровень
Мы еще не закончили. 20 июля 2018 года был особенным днем для отладки узла. Почему?
Команда лаборатории Google Chrome открыла исходный код своего расширенного инструмента отладки: ndb!
Ndb - отличный инструмент для отладки. Давай попробуем.
Установка ndb
npm install -g ndb
Как и любой другой пакет npm, он прост в использовании и установке.
использование
Чтобы использовать ndb, нам просто нужно поставить перед стартовым скриптом ndb.
Вот и все! Давайте перезапустим наш сервер - обратите внимание, что мы используем nodemon - как и любой традиционный проект.
У нас есть новый экземпляр Chrome с единственной целью отладки. Как это круто?
У нас даже есть доступ к глобальному объекту узла process
, который является объектом window
для узла.
Обсуждение нового отладчика в новостях хакеров - зацените!
Если вы хотите поднять свои навыки работы с Node на новый уровень, я рекомендую прочитать книгу Веб-разработка с помощью Node и Express: использование стека JavaScript ».
Спасибо за чтение, оставайтесь классными! ❤