我有这样一个对象:

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);

其他回答

从Node.js 6.4.0开始,这个问题可以用util.inspect.defaultOptions优雅地解决:

require("util").inspect.defaultOptions.depth = null;
console.log(myObject);

这两种用法都可以应用:

// more compact, and colour can be applied (better for process managers logging)
console.dir(queryArgs, { depth: null, colors: true });

// get a clear list of actual values
console.log(JSON.stringify(queryArgs, undefined, 2));

检查对象的一个好方法是使用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中不可用。

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

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

也许控制台。Dir就是你所需要的。

http://nodejs.org/api/console.html#console_console_dir_obj

使用实效。检查obj并将结果字符串打印到标准输出。

如果您需要更多的控制,请使用util选项。