javascriptnode.jsdebuggingconsole.log

How can I get the full object in Node.js's console.log(), rather than '[Object]'?


I have this object:

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

But when I try to show it using console.log(myObject), I receive this output:

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

How can I get the full object, including the content of property f?


Solution

  • You need to use 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 */))
    

    Outputs

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