Ce module à usage général contient de nombreuses fonctions utilitaires utiles qui peuvent vous épargner l'effort d'écrire du code supplémentaire.

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.

Plongez dans les différentes fonctions du module util et explorez quelques exemples pour vous aider à tirer parti de ces outils.

Se connecter avec plus de commodité

La journalisation fait référence à l'enregistrement d'informations ou d'événements importants, tels que les valeurs de variables, les messages d'erreur et le flux d'exécution, qui se produisent dans une application logicielle. La journalisation a plusieurs objectifs, notamment le débogage, la surveillance et l'audit.

Le module util Node.js fournit un mécanisme de journalisation pratique utilisant le util.debuglog méthode. Il 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 le paramètre

NODE_DEBUG variables d'environnement. Voici un exemple :

// index.js
constante util = exiger("utile");

constante débogage = util.debuglog("monapplication"); // initialise l'enregistreur de débogage

déboguer("Ceci est un message de débogage"); // MYAPP 39668: Ceci est un message de débogage

Cet exemple montre comment vous pouvez définir un enregistreur de débogage simple, dans un espace de noms "myapp", et consigner un message et son ID de processus dans la console.

Pour activer les journaux de débogage, définissez le NODE_DEBUG variable d'environnement à l'espace de noms lorsque vous exécutez le script :

NODE_DEBUG=index de nœud de mon application.js

Si vous souhaitez activer plusieurs espaces de noms de débogage, ajoutez une virgule pour séparer les espaces de noms :

NODE_DEBUG=monapp, monapp2,monapp3 node index.js

Si vous n'incluez pas d'espace de noms dans le NODE_DEBUG variable d'environnement, les appels à debuglog ignoreront cet espace de noms.

Le util.debuglog La méthode fournit des fonctionnalités utiles, mais si votre application nécessite une journalisation plus complexe, vous pouvez utiliser l'une des autres méthodes robustes. paquets de journalisation dans l'écosystème Node.js.

Fonctions prometteuses pour la flexibilité

Les promesses en JavaScript fournissent un moyen de gérer le code asynchrone de manière plus structurée et gérable. en vous 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 les rappels enfer.

Cependant, toutes les fonctions intégrées ne prennent pas en charge les promesses. Cependant, vous pouvez "promisifier" les fonctions qui utilisent des rappels traditionnels pour leur permettre de prendre en charge les promesses avec le module util. util.promisifier méthode.

Cette méthode prend une fonction qui utilise le système de rappel traditionnel et renvoie une fonction qui utilise des promesses.

Par exemple:

constante util = exiger("utile");

// Version de rappel
fonctionfonction de rappel(arg1, arg2, rappel) {
// Opération asynchrone
// Invoquer le rappel avec erreur (le cas échéant) et résultat
}

// Promesse fonction de rappel
constante callbackFunctionPromise = util.promisify (callbackFunction);

// Version promise
callbackFunctionPromise (arg1, arg2)
.alors((résultat) => {
// Traiter le résultat
})
.attraper((erreur) => {
// Gérer l'erreur
});

Dans l'exemple ci-dessus, le util.promisifier convertit la version de rappel de la fonction en une version qui utilise des promesses.

Cette conversion vous permet d'utiliser la chaîne alors et attraper blocs, utiliser essayer-attraper, et gérez mieux votre code asynchrone.

Formater des chaînes avec une méthode familière

Le Node.js utile module fournit une fonction de formatage appelée util.format qui vous permet de créer des chaînes formatées. Cette méthode fonctionne de manière similaire à le printf fonction dans bash et d'autres langages de programmation comme C et C++.

Le util.format() La méthode prend une chaîne de format qui peut contenir zéro ou plusieurs spécificateurs de format, tels que %s (cordes), %d (chiffres), comme argument. Il prend également un nombre arbitraire de valeurs qui remplaceront leurs spécificateurs correspondants.

Par exemple:

constante util = exiger("utile");

constante nom = "Bonnie";
constante âge = 30;

constante formattedString = util.format(
"Je m'appelle %s et j'ai %d ans.",
nom,
âge
);

console.log (chaîne formatée); // Je m'appelle Bonnie et j'ai 30 ans.

Cet exemple utilise une chaîne de format avec deux espaces réservés: %s et %d. Le %s l'espace réservé est pour la substitution de chaîne, tandis que %d est pour la substitution numérique. L'appel à util.format passe les valeurs correspondantes—nom et âge—pour chaque espace réservé.

Si un spécificateur n'a pas d'argument correspondant, le util.format ne la remplacera pas et renverra la chaîne sans la modifier :

constante util = exiger("utile");

constante formattedString = util.format("Mon nom est s");
console.log (chaîne formatée); // Mon nom est s

Cet exemple appelle format avec un seul argument, de sorte que la méthode renvoie la chaîne d'origine.

Il existe de nombreuses autres utilisations du module Util

Outre ces utilisations, le module util Node.js propose d'autres fonctions utilitaires. Les exemples incluent l'inspection d'objets et de valeurs et l'abandon 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 de votre flux de travail global.