How can I get the full object in Node.js's console.log()?
By default, console.log() may truncate or simplify large or deeply nested objects to keep the output concise. If you need a more complete or expanded view, try one of the following approaches:
1. Use console.dir with Custom Options
console.dir() is similar to console.log(), but it provides options to control the depth and formatting:
const obj = { /* deeply nested object */ }; console.dir(obj, { depth: null, colors: true });
depth: nulltells Node.js to display all nested levels (instead of truncating).colors: trueenables syntax highlighting in many terminals, making objects easier to read.
2. Use util.inspect
The built-in util module allows you to customize inspection. For instance:
const util = require('util'); const obj = { /* deeply nested object */ }; console.log(util.inspect(obj, { showHidden: false, depth: null, colors: true }));
depth: nullagain means no limit on nesting.colors: trueturns on colored output.
3. Convert to JSON String
For a straightforward textual representation (without color or special formatting):
const obj = { /* deeply nested object */ }; console.log(JSON.stringify(obj, null, 2));
JSON.stringifyconverts the object into a JSON string.nullis for thereplacerargument (unused here).2adds indentation for readability.
Note: This can fail if the object contains circular references.
Recommended Resource
Best Practices
- Choose the right tool: If you need a quick snapshot,
console.log()might suffice. For deep debugging of nested structures, considerconsole.dir()orutil.inspect()withdepth: null. - Watch out for performance: Very large objects or circular references can cause performance overhead or errors when stringifying. Use carefully, especially in production code.
- Use in development: These methods are usually for debugging and not typically used in final production logs.
With these approaches, you can see the entire structure of your objects in Node.js without truncation or missing details.
CONTRIBUTOR
TechGrind