如何在Node中记录对象

在Node.js中记录对象

当您键入console.log()进入在浏览器中运行的JavaScript程序,这将在浏览器控制台中创建一个不错的条目:

单击箭头后,将展开日志,您可以清楚地看到对象属性:

在Node中,也会发生同样的情况。

当我们将某些内容记录到控制台时,我们没有那么奢侈,因为如果您手动运行Node程序或将其输出到日志文件,这会将对象输出到外壳程序。您将获得对象的字符串表示形式。

现在,在达到一定嵌套级别之前,一切都很好。经过两层嵌套后,Node放弃并打印[Object]作为占位符:

const obj = {
  name: 'Flavio',
  age: 35,
  person1: {
    name: 'Tony',
    age: 50,
    person2: {
      name: 'Albert',
      age: 21,
      person3: {
        name: 'Peter',
        age: 23
      }
    }
  }
}
console.log(obj)

{ name: ‘Flavio’, age: 35, person1: { name: ‘Tony’, age: 50, person2: { name: ‘Albert’, age: 21, person3: [Object] } } }

如何打印整个对象?

最好的方法是在保留漂亮打印效果的同时使用

console.log(JSON.stringify(obj, null, 2))

在哪里2是用于缩进的空格数。

另一种选择是使用

require('util').inspect.defaultOptions.depth = null
console.log(obj)

但是问题在于,现在将第2层之后的嵌套对象展平,这可能是复杂对象的问题。

免费下载我的Node.js手册


更多节点教程: