Módulo console de Node.js

Java FileMódulos integrados de Node.js


consoleEl módulo es uno de los módulos integrados más utilizados en Node.js, y proporciona una consola de depuración simple, similar al objeto JavaScript del navegador.consoleEste módulo se utiliza principalmente para imprimir información en la salida estándar (stdout) y el error estándar (stderr), y es una herramienta importante para depurar y registrar registros durante el desarrollo.


Uso básico del módulo console

1. Imprimir información normal

console.log()Es el método más utilizado para imprimir información normal:

Ejemplo

console.log('Hello, Node.js!');
// Salida: Hello, Node.js!

2. Imprimir mensajes de error

console.error()Se utiliza para imprimir mensajes de error, por defecto se envía a stderr:

Ejemplo

console.error('This is an error message');
// Salida (rojo): This is an error message

3. Imprimir mensajes de advertencia

console.warn()Se utiliza para imprimir mensajes de advertencia:

Ejemplo

console.warn('This is a warning message');
// Salida (amarillo): This is a warning message

4. Imprimir mensajes informativos

console.info()yconsole.log()Similar, se utiliza para imprimir mensajes informativos:

Ejemplo

console.info('This is an informational message');
// Salida: This is an informational message

Funciones avanzadas del módulo console

1. Salida formateada

El módulo console admite la salida formateada estilo printf() del lenguaje C:

Ejemplo

const name = 'Alice';
const age = 25;
console.log('Name: %s, Age: %d', name, age);
// Salida: Name: Alice, Age: 25

Marcadores de posición de formato admitidos:

  • %s- Cadena (string)
  • %d- Número (entero o flotante)
  • %i- Entero
  • %f- Flotante
  • %o- Objeto
  • %j - JSON

2. Función de cronometraje

console.time()yconsole.timeEnd()Se puede utilizar para medir el tiempo de ejecución del código:

Ejemplo

console.time('array test');
const arr = [];
for (let i = 0; i < 1000000; i++) {
  arr.push(i);
}
console.timeEnd('array test');
// Salida: array test: 12.345ms

3. Salida agrupada

console.group()yconsole.groupEnd()Puede crear grupos de mensajes plegables:

Ejemplo

console.group('User Details');
console.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();

4. Salida tabular

console.table()Puede generar arreglos u objetos en forma de tabla:

Ejemplo

const users = [
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 30 }
];
console.table(users);

5. Pruebas de aserción

console.assert()Se utiliza para pruebas de aserción simples:

Ejemplo

const x = 5;
console.assert(x === 10, 'x should be 10');
// Cuando la aserción es false, la salida es: Assertion failed: x should be 10

Opciones de configuración del módulo console

1. Flujos de salida personalizados

Puede crear una instancia de Console personalizada y especificar diferentes flujos de salida:

Ejemplo

const { Console } = require('console');
const fs = require('fs');

const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');

const logger = new Console(output, errorOutput);

logger.log('This will be written to stdout.log');
logger.error('This will be written to stderr.log');

2. Colores y estilos

En terminales compatibles con colores ANSI, la salida de console puede tener colores:

Ejemplo

console.log('\x1b[36m%s\x1b[0m', 'Cyan colored text');

O utilice bibliotecas de terceros comochalkpara simplificar el control de colores:

Ejemplo

const chalk = require('chalk');
console.log(chalk.blue('Blue text'));

Mejores prácticas

  1. Registros de producción: En entornos de producción, se recomienda usar bibliotecas de registro especializadas comowinstonobunyanen lugar de console.
  2. Evite el uso excesivo: Solo use console en las etapas de desarrollo y depuración; en el código de producción se deben eliminar las declaraciones console innecesarias.
  3. Consideraciones de rendimiento: console.log es síncrono, úselo con precaución en escenarios sensibles al rendimiento.
  4. Manejo de errores: Use console.error para registrar mensajes de error, lo que facilita distinguir y filtrar.

Lista de métodos y propiedades

A continuación se presentan los métodos y propiedades principales del módulo Node.jsconsoleconsole:

Método/Propiedad Descripción Flujo de salida Introducido en la versión
console.log([data][, ...args]) Imprime en stdout con salto de línea stdout 0.1.100
console.error([data][, ...args]) Imprime en stderr con salto de línea 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]) Imprime información de depuración en stdout stdout 8.0.0
console.dir(obj[, options]) Aplica util.inspect() al objeto e imprime el resultado stdout 0.1.100
console.time([label]) Inicia un temporizador - 0.1.100
console.timeEnd([label]) Detiene el temporizador e imprime el resultado stdout 0.1.100
console.timeLog([label][, ...data]) Imprime el valor actual del temporizador stdout 10.7.0
console.trace([message][, ...args]) Imprime el seguimiento de la pila en stderr stderr 0.1.100
console.assert(value[, message][, ...args]) Si value es un valor falso, la aserción falla e imprime message stderr 0.1.100
console.clear() Intenta limpiar la consola - 8.3.0
console.count([label]) Cuenta el número de llamadas a label stdout 8.3.0
console.countReset([label]) Restablece el contador stdout 8.3.0
console.group([...label]) Indenta la salida posterior stdout 8.5.0
console.groupEnd() Finaliza el grupo de sangría actual stdout 8.5.0
console.table(tabularData[, properties]) Imprime datos en forma de tabla stdout 10.0.0
console.dirxml(...data) Si es compatible, llama a console.log para imprimir el árbol XML/HTML stdout -

Propiedades especiales

Propiedad Descripción
console.stdout Flujo escribible que apunta a la salida estándar
console.stderr Flujo escribible que apunta a la salida de error estándar

El módulo console de Node.js es una herramienta de depuración simple pero poderosa que ofrece múltiples métodos, desde el registro básico hasta funciones avanzadas como cronometraje y salida tabular. Dominar el uso del módulo console puede mejorar significativamente la eficiencia del desarrollo y la experiencia de depuración.

Java FileMódulos integrados de Node.js