Циклическая ошибка строки JSON без соответствующей трассировки стека на Nest.js

Следующая ошибка убивает мое приложение в производстве:

/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:137
            ? `${this.colorize('Object:', logLevel)}\n${JSON.stringify(message, (key, value) => typeof value === 'bigint' ? value.toString() : value, 2)}\n`
                                                             ^

TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'ClientRequest'
    |     property 'socket' -> object with constructor 'Socket'
    --- property '_httpMessage' closes the circle
    at JSON.stringify (<anonymous>)
    at ConsoleLogger.stringifyMessage (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:137:62)
    at ConsoleLogger.formatMessage (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:130:29)
    at /usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:122:43
    at Array.forEach (<anonymous>)
    at ConsoleLogger.printMessages (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:117:18)
    at ConsoleLogger.error (/usr/src/app/node_modules/@nestjs/common/services/console-logger.service.js:44:14)
    at Logger.error (/usr/src/app/node_modules/@nestjs/common/services/logger.service.js:34:75)
    at Logger.descriptor.value (/usr/src/app/node_modules/@nestjs/common/services/logger.service.js:163:27)
    at ExceptionsHandler.handleUnknownError (/usr/src/app/node_modules/@nestjs/core/exceptions/base-exception-filter.js:54:43)

Я не могу воспроизвести его при разработке и не знаю, что вызывает эту ошибку. Есть ли способ сделать так, чтобы трассировка стека включала источник этой ошибки?

Я уже запускал его с помощью DEBUG=*, но это не дает мне окончательного ответа.

Я думаю, что ошибка происходит рядом с этими строками (на основе журналов), но я не могу точно сказать:

      this.logger.error(error.toString())
      throw new InternalServerErrorException(error.toString())

Кажется, это не связано, потому что error.toString() оценивается как [object Object] (бесполезно, но правильно).

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Основываясь на свойствах, похоже, что AxiosError или какая-либо другая ошибка HTTP-клиента была вызвана напрямую, без преобразования в HttpException, которое Nest знал бы, как обрабатывать, а затем Nest попытался выйти из системы. ошибка. Я бы проверил, как вы используете HttpService (если вы его используете) или любые другие HTTP-клиенты, которые вы используете. Если вы по-прежнему ничего не можете найти, я бы посоветовал использовать другой регистратор, отличный от Nest, который может обрабатывать циклический JSON. Я предпочитаю ogma , но я также являюсь его автором. пино еще один хороший выбор

Большое спасибо, Джей! Я заменил ConsoleLogger на ogma (отлично!). Ошибка по-прежнему загадочна, поскольку она еще не появилась (я не знаю, как ее вызвать), но, по крайней мере, я могу исследовать ее без сбоя моего приложения.

rodorgas 09.02.2023 16:21

Другие вопросы по теме