Node.js格式化的控制台输出

有没有一个简单的内置的方式来输出格式化数据到Node.js的控制台?

缩进,将字段向左或向右alignment,添加前导零?

在ES2017(ES8)中引入了两个新的(1)内置方法String.Prototype.padStart和String.Prototype.padEnd ,它们执行所需的填充函数。

(1) 节点> = 8.2.1(或> = 7.5.0,如果使用–harmony标志运行)

来自mdn页面的示例:

 '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" 

要将 json 压缩到控制台上,请尝试使用JSON.stringify 。 第三个参数提供了所需的缩进。

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

NodeJS没有任何内容可以做到这一点。 你会来的“最接近的”是util.format ,但是不幸的是( 引用 )并没有太大的帮助。

您需要查看其他模块以提供更丰富的格式化体验。 例如: sprintf 。

Sprintf-js允许位置(0,1,2)参数和命名参数。

填充和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)); 

结果:

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

如果你有更简单的需求,你可以看看util.format 。 它可以从各种参数生成string。 如果你想printf格式化,你可以使用sprintf包或sprintf-js包。

看看Log4JS ,这是一个function性的Log4j端口的尝试