Maison > Article > interface Web > Quelques fonctions utiles dans le module util de Node.js
Node.js englobe une gamme de composants qui se réunissent pour former un environnement d'exécution JavaScript. Dans notre série sur l'architecture Node.js - Introduction à Node.js, nous avons exploré les différents composants qui composent Node.js et leurs fonctions respectives.
Dans Node.js, il existe de nombreux modules intégrés, c'est-à-dire des modules intégrés dès le départ. L'un de ces modules est util, qui, à mon avis, mérite plus d'attention. Le module util comprend une collection de petites fonctions utilitaires qui peuvent être utiles dans certaines situations. Dans cet article, nous aborderons certaines de ces fonctions...
Le rappel est l'un des premiers moyens de gérer le code asynchrone. Cependant, les rappels ont plusieurs limites, telles que la création de code imbriqué et le fameux « enfer des rappels ». Parfois, lire un morceau de code écrit dans un style de rappel peut être écrasant. L'ajout de nouvelles fonctionnalités peut s'avérer difficile, car cela nécessite l'introduction d'une couche logique supplémentaire.
Dans Node.js, il existe une fonction utilitaire pour convertir les fonctions asynchrones en utilisant le style de rappel en Promises. Cette fonction est utile lorsque vous souhaitez passer à une approche basée sur Promise, puis la combiner avec async/await pour rendre votre code plus concis et plus facile à suivre.
const util = require('node:util'); const fs = require('node:fs'); const stat = util.promisify(fs.stat); async function callStat() { const stats = await stat('.'); console.log(`This directory is owned by ${stats.uid}`); } callStat();
À l'inverse, nous avons util.callbackify pour reconvertir les fonctions basées sur Promise en rappels.
const util = require('node:util'); async function fn() { return 'hello world'; } const callbackFunction = util.callbackify(fn); callbackFunction((err, ret) => { if (err) throw err; console.log(ret); });
Si vous utilisez fréquemment des bibliothèques, vous avez peut-être remarqué des messages de console indiquant qu'une fonction est obsolète.
oldFunction() is deprecated. Use newFunction() instead.
Il s'agit d'une notification indiquant que l'ancienne fonction approche de la fin de son cycle de vie de support et qu'elle pourrait être supprimée à l'avenir. C'est une approche courante pour rappeler aux développeurs qu'une fonction approche de sa « retraite » et d'utiliser une fonction alternative à la place.
Dans Node.js, il existe un moyen simple d'afficher cette notification si vous devez avertir les autres qu'une fonction approche de sa fin de vie.
const util = require('util'); function oldFunction() { console.log('This function is deprecated!'); } const deprecatedFunction = util.deprecate(oldFunction, 'oldFunction() is deprecated. Use newFunction() instead.');
"Enveloppez" simplement l'ancienne fonction dans util.deprecate. Chaque fois que oldFunction est appelé, le message d'avertissement apparaîtra dans la console.
À partir d'ES6, nous avons des fonctions supplémentaires pour vérifier le type de données : booléen, tableau, objet, etc.
Le module util possède une propriété types qui étend la capacité de vérifier les types de données.
Par exemple :
console.log(util.types.isPromise(Promise.resolve())); // true console.log(util.types.isRegExp(/abc/)); // true console.log(util.types.isDate(new Date())); // true
Une liste complète est disponible sur util.types | Documentation Node.js.
isDeepStrictEqual est la méthode la plus efficace pour comparer deux objets et déterminer s'ils sont identiques.
const util = require('util'); const obj1 = { a: 1, b: { c: 2 } }; const obj2 = { a: 1, b: { c: 2 } }; console.log(util.isDeepStrictEqual(obj1, obj2)); // true
En plus de ces fonctions, le module util fournit de nombreuses autres fonctions utilitaires, telles que util.styleText pour formater la sortie du texte dans la console et util.parseEnv pour analyser le contenu des variables d'environnement dans les fichiers .env.
Pour plus d'informations, reportez-vous à :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!