Node.jsのコンソールにフォーマットされたデータを出力する簡単な組み込み方法はありますか?
インデント、フィールドを左または右に揃え、先行ゼロを追加しますか?
2つのnew(1)ビルトインメソッド String.Prototype.padStart および String.Prototype.padEnd はES2017(ES8)で導入され、必要なパディング機能を実行します。
(1)node> = 8.2.1(または--harmonyフラグを指定して実行した場合は> = 7.5.0)
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 を使用してみてください。 3番目のパラメーターは、必要なインデントを提供します。
JSON.stringify({ a:1, b:2, c:3 }, null, 4);
// {
// "a": 1,
// "b": 2,
// "c": 3
// }
これを行うためにNodeJSに組み込まれているものはありません。あなたが来る「最も近い」はutil.format
、これはまだ残念ながらあまり機能しません( reference )。
より豊富なフォーマットエクスペリエンスを提供するには、他のモジュールを調べる必要があります。例: sprintf 。
Sprintf-jsでは、位置(0、1、2)引数と名前付き引数の両方を使用できます。
パディングと配置のいくつかの例:
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
データが表形式の場合、最も簡単な方法はconsole.table
これがコードです。
console.table(
COMMANDS.map(command => {
return {
"Long Option": command.long_option,
"Short Option": command.short_option,
Description: command.description
};
})
);
外部ライブラリは必要ありません。出力例を次に示します。配列オブジェクトを渡すだけです。
Nodejsだけでなく、chromeでも機能します。
https://developer.mozilla.org/en-US/docs/Web/API/Console/table
より単純なニーズがある場合は、 til.format を調べることができます。さまざまなパラメーターから文字列を生成できます。 printfのような書式設定が必要な場合は、 sprintf packageまたは sprintf-js packageのいずれかを使用できます。
Log4JS を見てください。これはLog4jの機能ポートでの試みです