如何在 Node.js 的控制台.log() 而不是“[Object]”中获取完整的对象?

2022-08-29 22:04:12

我有这个对象:

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


答案 1

你需要使用 util.inspect()

const util = require('util')

console.log(util.inspect(myObject, {showHidden: false, depth: null, colors: true}))

// alternative shortcut
console.log(util.inspect(myObject, false, null, true /* enable colors */))

输出

{ a: 'a',  b: { c: 'c', d: { e: 'e', f: { g: 'g', h: { i: 'i' } } } } }

答案 2

您可以使用 ,并获得一些漂亮的缩进,以及可能更容易记住的语法。JSON.stringify

console.log(JSON.stringify(myObject, null, 4));

{
    "a": "a",
    "b": {
        "c": "c",
        "d": {
            "e": "e",
            "f": {
                "g": "g",
                "h": {
                    "i": "i"
                }
            }
        }
    }
}

第三个参数设置缩进级别,因此您可以根据需要进行调整。

如果需要,可以在JSON字符串化MDN文档中提供更多详细信息。