Печать трассировки стека в Node.js: основы и полезные библиотеки

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Чтобы увидеть стек вызовов при ошибке в Node.js с помощью Error().stack, необходимо написать следующую команду:

JS
Скопировать код
console.log(new Error().stack);

Данная команда выведет текущий стек вызовов в консоль.

Кинга Идем в IT: пошаговый план для смены профессии

Завершение

Модульность — основной принцип качественного кода. Для этого следует вынести логику отображения стека вызовов в отдельную функцию:

JS
Скопировать код
function printStackTrace() {
  const stack = new Error().stack;
  console.log(stack);
}

printStackTrace();

Таким образом, вы избежите ненужных дублирований кода.

Визуализация

Представьте себе стек вызовов в Node.js как след от пути, проложенного фрагментами хлеба, который помогает выбраться из густого леса вашего кода обратно к началу:

Markdown
Скопировать код
Старт: 🌲🌲[Вызов вашей функции]🌲🌲
|
|_ 🥖 [Функция A]
   |
   |_ 🥖 [Функция B]
      |
      |_ 🥖 [Функция C] 👈 Здесь сработало исключение!

Используйте стек вызовов, чтобы проследить своё возвращение к источнику ошибки:

JS
Скопировать код
Error.captureStackTrace(targetObject);
const stack = new Error().stack;
console.log(stack);

Путь к успешному решению проблемы проходит через воссоздание последовательности вашего стека вызовов!

Полезные материалы

  1. Node.js — Diagnostics – Flame Graphs — узнайте больше о обработке ошибок и о создании диагностических отчётов в Node.js.
  2. Stack trace API · V8официальное руководство по работе со стеком вызовов в JavaScript-движке Node.js.
  3. Node.js — Debugging – Getting Started — полное руководство от А до Я по отладке в Node.js.
  4. Error – JavaScript | MDN — подробная информация о объекте Error в JavaScript.
  5. Winston: A logger for just about everything. — научитесь ведению профессионального журнала логов с помощью Winston, универсальной библиотеки логирования для Node.js.
  6. Node.js debuggerNode Inspector, ваш личный детективский набор для отладки Node.js.
  7. Errors | Node.js v21.6.1 Documentation — детали о создании и обработке пользовательских ошибок в официальной документации Node.js.