Когда журналов консоли недостаточно

Что вы делаете, когда видите это?

Вы можете проверить каждую строчку кода и попытаться найти опечатку. Если вы не обнаружите опечаток, вы можете начать использовать 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 ».

Спасибо за чтение, оставайтесь классными! ❤