Node如何记录对象(五)

174 阅读1分钟

1、在js中通常使用console.log()打印代码,当在浏览器上运行的JS程序中输入console.log()时,则会在浏览器的控制台中显示出相应的数据

4.png

当点击图片中箭头的位置,则会展开日志,可以清楚的看到对象的属性:

5.png

2、在node.js中,也会发生同样的情况。

当记录内容到控制台时,因为它会将对象输出到日志文件,你会获得对象的字符串表示形式。在达到一定嵌套级别之前一切都很好,在经过两个级别的嵌套后,node.js会放弃并打印[object]作为占位符,比如下面这段代码:

const obj = {

  name: 'Amy',

  age: 18,

  person01: {

    name: 'Hong',

    age: 10,

    person02: {

      name: 'Ming',

      age: 20,

      person03: {

        name: 'wang',

        age: 30

      }

    }

  }

}

console.log(obj)

{

  name: 'Amy',

  age: 18,

  person01: {

    name: 'Hong',

    age: 10,

    person02: {

      name: 'Ming',

      age: 20,

      person03: [Object]

    }

  }

}

3、那如何打印整个对象?

最好的方法将全部内容显示出来,参考如下:

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

注释:数字2用于缩进的空格数

6.png

方法二使用如下方法:

require('util').inspect.defaultOptions.depth = null

console.log(obj)

该方法存在一个问题,第二级之后的嵌套对象会被展平(针对复杂对象的问题)。

今日份寄语:

幸福,是用来感觉的,而不是用来比较的。