我正在观看一门课程,该课程展示了如何使用自定义配置(例如颜色或根据您的环境模式,是否显示日志)制作console.log。
但是我不断收到错误TypeError: Converting circular structure to JSON
而且我不知道为什么会这样以及如何解决。
在这个过程中,这很好,但是对我来说不是。
节点版本=> v8.11.2
require('colors')
const _ = require('lodash')
const config = require('../config/config')
const noop = () => { }
const consoleLog = config.logging ? console.log.bind(console) : noop
const logger = {
log: () => {
const args = _.toArray(arguments)
.map(arg => {
if (typeof arg === 'object') {
let str = JSON.stringify(arg, 2)
return str.magenta
} else {
arg += ''
return arg.magenta
}
})
consoleLog.apply(console, args)
}
}
module.exports = logger
Edit1:arguments
可以是任何东西,因为logger将用于在控制台中记录具有不同颜色的内容。
logger.log('some thing you want to log')
答案 0 :(得分:2)
logger.log()
是一个箭头函数,因此arguments
不是此函数的参数(请参见Arrow functions: No binding of arguments
),而是父函数的参数,在这种情况下为Node.js wrapper function编译模块并具有带有循环依赖项的参数。
尝试在此处使用常用功能:
const logger = {
log() {
// ...
}
};