Sortie de console formatée Node.js

Existe-t-il un moyen simple de générer des données formatées sur la console dans Node.js?

Indentez, alignez le champ à gauche ou à droite, ajoutez des zéros en tête?

Deux nouvelles méthodes (1) intégrées Ssortingng.Prototype.padStart et Ssortingng.Prototype.padEnd ont été introduites dans ES2017 (ES8) et exécutent les fonctions de remplissage requirejses.

(1) node> = 8.2.1 (ou> = 7.5.0 si exécuté avec le drapeau –harmony)

Exemples de la page 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" 

Pour indenter un fichier json sur la console, essayez d’utiliser JSON.ssortingngify . Le troisième paramètre fournit l’indentation requirejse.

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

Il n’y a rien dans NodeJS pour faire cela. Le plus proche de vous est util.format , qui malheureusement ne fait toujours pas grand chose ( référence ).

Vous devrez vous pencher sur d’autres modules pour fournir une expérience de mise en forme plus riche. Par exemple: sprintf .

Sprintf-js autorise les arguments positionnels (0, 1, 2) et les arguments nommés.

Quelques exemples de remplissage et d’alignement:

 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)); 

Résultats:

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

Si vous avez des besoins plus simples, vous pouvez regarder dans util.format . Il peut générer une chaîne à partir de différents parameters. Si vous souhaitez un formatage similaire à printf, vous pouvez utiliser le package sprintf ou le package sprintf-js .

Jetez un oeil à Log4JS , qui est une tentative de port fonctionnel de Log4j