选项卡"/>
在 NodeJS 的 console.log 中的每一行的开头添加选项卡
我在我的代码中经常使用 console.log 来更好地调试。例如,在我的
cart.js
文件夹中的 controllers
文件中,在 getProductsInCart
函数中,我这样做:
控制器/cart.js
console.log('[controllers/cart.js].getProductsInCart', '\nproducts =', products);`
在终端中给我以下结果:
[controllers/cart.js].getProductsInCart // <-- where `products` object is located
products = [
{
productId: new ObjectId("645a54116710e60e28b96903"),
quantity: 1,
_id: new ObjectId("645a6e2e119c195fd8b32f99")
}
]
My
products
对象是从 MongoDB 中获取的。然而,当我开始在不同的文件中拥有越来越多的函数和变量时,日志会有点难以阅读。
因此,我希望终端中记录的每个变量如下所示:
[controllers/cart.js].getProductsInCart
products = [
{
productId: new ObjectId("645a54116710e60e28b96903"),
quantity: 1,
_id: new ObjectId("645a6e2e119c195fd8b32f99")
}
]
如何在每行的开头添加 2 个选项卡,使我的
products
值看起来像那样?
回答如下:
如果您反对将日志记录库引入您的项目,请考虑使用
JSON.stringify()
为产品对象添加额外的缩进或 console.group()
/console.groupEnd()
为中间打印的所有行添加缩进,或两者的组合.
JSON.stringify()的第三个参数为结果字符串中嵌套的对象的每一层增加了一些空格:
console.log('something', 'products =', JSON.stringify(products, null, 5))
需要注意的是,空间的数量会随着嵌套的每一层而成倍增加。
console.group() / groupEnd() 让你缩进它们之间的行:
console.group();
console.log('1'); // indented
console.groupEnd();
console.log('2'); // not indented
console.dir() 是另一个用于记录对象的有用工具。它为属性值添加颜色,这通常有助于提高可读性。
更多推荐
在 NodeJS 的 console.log 中的每一行的开头添加选项卡
发布评论