typescript 循环JSON字符串化错误,Nest.js上没有相关堆栈跟踪

li9yvcax  于 2023-02-10  发布在  TypeScript
关注(0)|答案(1)|浏览(139)

以下错误正在终止我的生产应用程序:

/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](无用,但没有错)。

wgeznvg7

wgeznvg71#

根据这些属性,看起来 * 很可能 * AxiosError或其他HTTP客户端错误被直接抛出,而没有转换为Nest知道如何处理的HttpException,然后Nest尝试注销错误。(如果您使用它)或您使用的任何其他HTTP客户端。如果您仍然找不到任何内容,我建议使用不同于Nest的日志记录器来处理循环JSON,我更喜欢ogma,但我也是它的作者,pino是另一个不错的选择

相关问题