Módulo console 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
// 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
// Salida (rojo): This is an error message
3. Imprimir mensajes de advertencia
console.warn()Se utiliza para imprimir mensajes de advertencia:
Ejemplo
// Salida (amarillo): This is a warning message
4. Imprimir mensajes informativos
console.info()yconsole.log()Similar, se utiliza para imprimir mensajes informativos:
Ejemplo
// 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 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
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.log('Name: Alice');
console.log('Age: 25');
console.groupEnd();
4. Salida tabular
console.table()Puede generar arreglos u objetos en forma de tabla:
Ejemplo
{ 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
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 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
O utilice bibliotecas de terceros comochalkpara simplificar el control de colores:
Ejemplo
console.log(chalk.blue('Blue text'));
Mejores prácticas
- Registros de producción: En entornos de producción, se recomienda usar bibliotecas de registro especializadas como
winstonobunyanen lugar de console. - 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.
- Consideraciones de rendimiento: console.log es síncrono, úselo con precaución en escenarios sensibles al rendimiento.
- 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.
Módulos integrados de Node.js