Node.js formatted console output Node.js formatted console output node.js node.js

Node.js formatted console output


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// }


There's nothing built into NodeJS to do this. The "closest" you'd come is util.format, which still doesn't do much unfortunately (reference).

You'll need to look into other modules to provide a richer formatting experience. For example: sprintf.

Sprintf-js allows both positional (0, 1, 2) arguments and named arguments.

A few examples of padding and alignment:

var sprintf=require("sprintf-js").sprintf;console.log(sprintf("Space Padded => %10.2f", 123.4567));console.log(sprintf("    _ Padded => %'_10.2f", 123.4567));console.log(sprintf("    0 Padded => %010.2f", 123.4567));console.log(sprintf(" Left align => %-10.2f", 123.4567));

Results:

Space Padded =>     123.46    _ Padded => ____123.46    0 Padded => 0000123.46 Left align => 123.46    


If the data is tabular, then the simplest way would be to do it with console.table

https://nodejs.org/dist/latest-v10.x/docs/api/console.html#console_console_table_tabulardata_properties

This is the code.

console.table(  COMMANDS.map(command => {    return {      "Long Option": command.long_option,      "Short Option": command.short_option,      Description: command.description    };  }));

You don't need external libraries for it.Here is sample output. You only need to pass an array object.enter image description here

Not only in Nodejs, but it also works in chrome.

https://developer.mozilla.org/en-US/docs/Web/API/Console/table

enter image description here