Le module util fournit un ensemble d’utilitaires que vous pouvez utiliser pour déboguer, inspecter et formater les données dans les applications Node.js.
Découvrez les différentes fonctions du module util et explorez quelques exemples pour vous aider à tirer parti de ces outils.
La journalisation avec plus de commodité
La journalisation consiste à enregistrer des informations ou des événements importants, tels que les valeurs des variables, les messages d’erreur et le flux d’exécution, qui se produisent au sein d’une application logicielle. La journalisation a de multiples objectifs, notamment le débogage, la surveillance et l’audit.
Le module util de Node.js fournit un mécanisme de journalisation pratique en utilisant la fonction util.debuglog La méthode debuglog est une méthode de débogage. Elle vous permet de créer des fonctions de journalisation de débogage avec un espace de noms, et vous pouvez les activer ou les désactiver en définissant la propriété NODE_DEBUG variable d’environnement. Voici un exemple :
// index.js
const util = require("util");
const debug = util.debuglog("myapp"); // initialize debug logger
debug("This is a debug message"); // MYAPP 39668: This is a debug message
Cet exemple montre comment vous pouvez mettre en place un simple logger de débogage, dans un espace de noms « myapp », et enregistrer un message et son identifiant de processus dans la console.
Pour activer les journaux de débogage, définissez la propriété NODE_DEBUG dans l’espace de noms lors de l’exécution du script :
NODE_DEBUG=myapp node index.js
Si vous souhaitez activer plusieurs espaces de noms de débogage, séparez-les par une virgule :
NODE_DEBUG=myapp,myapp2,myapp3 node index.js
Si vous n’incluez pas d’espace de noms dans le champ NODE_DEBUG les appels à debuglog ignoreront cet espace de noms.
L’option util.debuglog fournit des fonctionnalités utiles, mais si votre application nécessite une journalisation plus complexe, vous pouvez utiliser l’un des autres paquets de journalisation robustes de l’écosystème Node.js.
Promettre des fonctions pour plus de flexibilité
Les promesses en JavaScript permettent de gérer le code asynchrone de manière plus structurée et plus facile à gérer en permettant d’enchaîner les opérations, de gérer les erreurs et les événements de réussite séparément et d’éviter l’enfer des callbacks.
Bien que toutes les fonctions intégrées ne supportent pas les promesses. Cependant, vous pouvez « promettre » les fonctions qui utilisent des callbacks traditionnels pour leur permettre de supporter les promesses avec le module util util.promisify méthode.
Cette méthode prend une fonction qui utilise le système de rappel traditionnel et renvoie une fonction qui utilise les promesses.
Par exemple :
const util = require("util");
// Callback version
function callbackFunction(arg1, arg2, callback) {
// Asynchronous operation
// Invoke callback with error (if any) and result
}
// Promisify callbackFunction
const callbackFunctionPromise = util.promisify(callbackFunction);
// Promisified version
callbackFunctionPromise(arg1, arg2)
.then((result) => {
// Process result
})
.catch((error) => {
// Handle error
});
Dans l’exemple ci-dessus, le util.promisify a converti la version callback de la fonction en une version qui utilise des promesses.
Cette conversion permet d’utiliser des chaînes puis et prise blocs, utilisation try-catchet de mieux gérer votre code asynchrone.
Formatage des chaînes de caractères avec une méthode familière
Le Node.js util Le module de gestion de l’information fournit une fonction de formatage appelée util.format qui permet de créer des chaînes formatées. Cette méthode fonctionne de manière similaire à la méthode printf en bash et dans d’autres langages de programmation comme C et C++.
Le util.format() prend une chaîne de format qui peut contenir zéro ou plusieurs spécificateurs de format, tels que %s (chaînes), %d (nombres), comme argument. Il prend également un nombre arbitraire de valeurs qui remplaceront les spécificateurs correspondants.
Par exemple :
const util = require("util");
const name = "Bonnie";
const age = 30;
const formattedString = util.format(
"My name is %s, and I am %d years old.",
name,
age
);
console.log(formattedString); // My name is Bonnie, and I am 30 years old.
Cet exemple utilise une chaîne de format avec deux caractères de remplacement : %s et %d. Les %s est destiné à la substitution de chaînes de caractères, tandis que %d sert à la substitution numérique. L’appel à util.format transmet les valeurs correspondantes-nom et âge-pour chaque espace réservé.
Si un spécificateur n’a pas d’argument correspondant, la fonction util.format ne la remplacera pas et renverra la chaîne sans la modifier :
const util = require("util");
const formattedString = util.format("My name is %s");
console.log(formattedString); // My name is %s
Cet exemple appelle format avec un seul argument, la méthode renvoie donc la chaîne originale.
Il existe bien d’autres utilisations du module Util
Outre ces utilisations, le module util de Node.js offre d’autres fonctions utilitaires. Les exemples incluent l’inspection d’objets et de valeurs et la dépréciation d’outils obsolètes.
En tirant parti des fonctionnalités fournies par le module util, vous pouvez améliorer la lisibilité et la maintenabilité de votre code et votre flux de travail global.