Module console de Node.js
consoleLe module est l'un des modules intégrés les plus couramment utilisés dans Node.js, offrant une console de débogage simple similaire à l'objet JavaScriptconsoledans le navigateur.
Utilisation de base du module console
1. Afficher des informations générales
console.log()C'est la méthode la plus couramment utilisée, servant à afficher des informations générales :
Exemple
// Sortie : Hello, Node.js!
2. Afficher les messages d'erreur
console.error()Il est utilisé pour afficher les messages d'erreur, qui sont envoyés vers stderr par défaut :
Exemple
// Sortie (rouge) : This is an error message
3. Afficher les messages d'avertissement
console.warn()Il est utilisé pour afficher les messages d'avertissement :
Exemple
// Sortie (jaune) : Ceci est un message d'avertissement
4. Afficher des messages d'information
console.info()etconsole.log()Semblable à console.log, il est utilisé pour afficher des messages d'information :
Exemple
// Sortie : Ceci est un message d'information
Fonctionnalités avancées du module console
1. Sortie formatée
Le module console prend en charge la sortie formatée similaire au style printf() du langage C :
Exemple
const age = 25;
console.log('Nom : %s, Âge : %d', name, age);
// Sortie : Nom : Alice, Âge : 25
Espaces réservés de format pris en charge :
%s- Chaîne%d- Nombre (entier ou flottant)%i- Entier%f- Flottant%o- Objet%j- JSON
2. Fonctionnalité de chronométrage
console.time()etconsole.timeEnd()Elle peut être utilisée pour mesurer le temps d'exécution du code :
Exemple
const arr = [];
for (let i = 0; i < 1000000; i++) {
arr.push(i);
}
console.timeEnd('array test');
// Sortie : array test: 12.345ms
3. Sortie groupée
console.group()etconsole.groupEnd()Il peut créer des groupes de messages repliables :
Exemple
console.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();
4. Sortie tabulaire
console.table()Il peut afficher des tableaux ou des objets sous forme tabulaire :
Exemple
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 }
];
console.table(users);
5. Tests d'assertion
console.assert()Il est utilisé pour des tests d'assertion simples :
Exemple
console.assert(x === 10, 'x devrait être 10');
// Sortie lorsque l'assertion est fausse : Échec de l'assertion : x devrait être 10
Options de configuration pour le module console
1. Flux de sortie personnalisés
Vous pouvez créer une instance Console personnalisée et spécifier différents flux de sortie :
Exemple
const fs = require('fs');
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
const logger = new Console(output, errorOutput);
logger.log('Ceci sera écrit dans stdout.log');
logger.error('Ceci sera écrit dans stderr.log');
2. Couleurs et styles
Dans les terminaux qui prennent en charge les couleurs ANSI, la sortie de la console peut être colorée :
Exemple
Ou utilisez des bibliothèques tierces telles quechalkpour simplifier le contrôle des couleurs :
Exemple
console.log(chalk.blue('Blue text'));
Bonnes pratiques
- Journaux d'environnement de production: Dans les environnements de production, il est recommandé d'utiliser une bibliothèque de journalisation dédiée telle que
winstonoubunyanau lieu de console. - Évitez l'utilisation excessive: N'utilisez console que pendant le développement et le débogage ; les instructions console inutiles doivent être supprimées du code de production.
- Considérations de performance: console.log est synchrone, donc utilisez-le avec prudence dans les scénarios sensibles aux performances.
- Gestion des erreurs: Utilisez console.error pour enregistrer les messages d'erreur afin de faciliter la différenciation et le filtrage.
Liste des méthodes et propriétés
Voici lesconsoleprincipales méthodes et propriétés du module Node.js :
| Méthode/Propriété | Description | Flux de sortie | Version introduite |
|---|---|---|---|
| console.log([data][, ...args]) | Affiche sur stdout avec un saut de ligne | stdout | 0.1.100 |
| console.error([data][, ...args]) | Affiche sur stderr avec un saut de ligne | stderr | 0.1.100 |
| console.warn([data][, ...args]) | Alias de console.error | stderr | 0.1.100 |
| console.info([data][, ...args]) | Alias de console.log | stdout | 0.1.100 |
| console.debug([data][, ...args]) | Afficher les informations de débogage sur stdout | stdout | 8.0.0 |
| console.dir(obj[, options]) | Utiliser util.inspect() sur un objet et afficher le résultat | stdout | 0.1.100 |
| console.time([label]) | Démarrer un minuteur | - | 0.1.100 |
| console.timeEnd([label]) | Arrêter le minuteur et afficher le résultat | stdout | 0.1.100 |
| console.timeLog([label][, ...data]) | Afficher la valeur actuelle du minuteur | stdout | 10.7.0 |
| console.trace([message][, ...args]) | Afficher une trace de pile sur stderr | stderr | 0.1.100 |
| console.assert(value[, message][, ...args]) | Si value est falsy, l'assertion échoue et message est affiché | stderr | 0.1.100 |
| console.clear() | Tenter d'effacer la console | - | 8.3.0 |
| console.count([label]) | Compter le nombre d'appels à label | stdout | 8.3.0 |
| console.countReset([label]) | Réinitialiser le compteur | stdout | 8.3.0 |
| console.group([...label]) | Indenter la sortie suivante | stdout | 8.5.0 |
| console.groupEnd() | Terminer le groupe indenté actuel | stdout | 8.5.0 |
| console.table(tabularData[, properties]) | Afficher les données sous forme de tableau | stdout | 10.0.0 |
| console.dirxml(...data) | Si disponible, appelez console.log pour afficher une arborescence XML/HTML | stdout | - |
Propriétés spéciales
| Propriété | Description |
|---|---|
| console.stdout | Flux inscriptible vers la sortie standard |
| console.stderr | Flux inscriptible vers la sortie d'erreur standard |
Le module console de Node.js est un outil de débogage simple mais puissant, offrant une variété de méthodes allant de la journalisation de base à des fonctionnalités avancées telles que la mesure de temps et la sortie tabulaire. Maîtriser l'utilisation du module console peut considérablement améliorer l'efficacité de développement et l'expérience de débogage.
Modules intégrés de Node.js