我有这样一个对象:

const myObject = {
   "a":"a",
   "b":{
      "c":"c",
      "d":{
         "e":"e",
         "f":{
            "g":"g",
            "h":{
               "i":"i"
            }
         }
      }
   }
};

但是当我尝试使用console.log(myObject)显示它时,我收到这样的输出:

{ a: 'a', b: { c: 'c', d: { e: 'e', f: [Object] } } }

我怎样才能得到完整的对象,包括属性f的内容?


当前回答

另一个简单的方法是将其转换为json

console.log('connection : %j', myObject);

其他回答

如果你正在寻找一种方法来显示数组中隐藏的项,你必须传递maxArrayLength: Infinity

console.log(util.inspect(value, { maxArrayLength: Infinity }));

试试这个:

console.dir(myObject,{depth:null})

检查对象的一个好方法是使用node -inspect选项与Chrome DevTools for node。

node.exe --inspect www.js

打开chrome://inspect/#设备,单击Open dedicated DevTools for Node

现在每个被记录的对象都可以在检查器中使用,就像在chrome中运行的常规JS一样。

不需要重新打开检查器,只要节点启动或重启,它就自动连接到节点。——inspect和Chrome DevTools for Node可能在旧版本的Node和Chrome中不可用。

一个简单的技巧是在运行脚本时使用调试模块添加DEBUG_DEPTH=null作为环境变量

Ex.

DEBUG=* DEBUG_DEPTH=null节点index.js

在代码中

const debug = require('debug');
debug("%O", myObject);

JSON.stringify()

let myVar = {a: {b: {c: 1}}};
console.log(JSON.stringify( myVar, null, 4 ))

非常适合深入检查数据对象。这种方法适用于嵌套数组和带有数组的嵌套对象。