Search code examples
node.jsconsole

Node.js formatted console output


Is there a simple built-in way to output formatted data to console in Node.js?

Indent, align field to left or right, add leading zeros?


Solution

  • Two new(1) built in methods String.Prototype.padStart and String.Prototype.padEnd were introduced in ES2017 (ES8) which perform the required padding functions.

    (1) node >= 8.2.1 (or >= 7.5.0 if run with the --harmony flag)

    Examples from the mdn page:

    'abc'.padStart(10);         // "       abc"
    'abc'.padStart(10, "foo");  // "foofoofabc"
    'abc'.padStart(6,"123465"); // "123abc"
    'abc'.padStart(8, "0");     // "00000abc"
    'abc'.padStart(1);          // "abc" 
    
    'abc'.padEnd(10);          // "abc       "
    'abc'.padEnd(10, "foo");   // "abcfoofoof"
    'abc'.padEnd(6, "123456"); // "abc123"
    'abc'.padEnd(1);           // "abc"
    

    For indenting a json onto the console try using JSON.stringify. The third parameter provides the indention required.

    JSON.stringify({ a:1, b:2, c:3 }, null, 4);
    // {
    //    "a": 1,
    //    "b": 2,
    //    "c": 3
    // }