A medida que trabajas cada vez más con Node.js, empiezas a darte cuenta del valor de un buen logging, sobre todo el de la consola. El problema está en que vamos ingresando e ingresando mensajes y los más importantes se pierden entre línes y líneas de texto, lo que lleva inequívocamente a la confusión por parte del usuario. Los mensajes de información deben mostrarse lógicamente de una manera y los mensajes de error que pueden llegar a paralizar la aplicación deben mostrarse de otra, totalmente distinta. ¿Existe un módulo que nos ayude a dar un formato personalizado a los mensajes de Node.js? Claro que sí, ¡Chalk!
Chalk cuenta con una API muy simple y fácil de usar. Aquí tienes algunos ejemplos de código:
const chalk = require('chalk'); // dando estilo a una cadena chalk.blue('Hola mundo!'); // combinando con estilo y normal chalk.blue('Hola') + 'Mundo' + chalk.red('!'); // combinando varios estilos usando la API chalk.blue.bgRed.bold('Hola Mundo!'); // pasando multiples argumentos chalk.blue('Hola', 'Mundo!', 'Foo', 'bar', 'biz', 'baz'); // anidando estilos chalk.red('Hola', chalk.underline.bgBlue('mundo') + '!');
Puedes encadenar métodos como bold con nombres de color, y viceversa. También puedes añadir cadenas Chalk'd o agregarlas como argumentos separados. Chalk es muy flexible y además no modifica el prototipo de la cadena, lo cual es impresionante.
Al parecer, más de 5.000 proyectos utilizan Chalk y hoy he podido comprender porqué. Los grandes problemas deben mostrarse con colores que capten la atención del usuario y la información del debugging debe ser menos prominente.
Actualmente Chalk cuenta con todos estos atributos:
Modificadores
reset
bold
dim
italic
underline
inverse
hidden
strikethrough
Colores
black
red
green
yellow
blue (en Windows se utiliza la versión bright puesto que la azul es ilegible)
magenta
cyan
white
gray
Colores de fondo
bgBlack
bgRed
bgGreen
bgYellow
bgBlue
bgMagenta
bgCyan
bgWhite
Esperamos que a partir de ahora sepas "colorear" los mensajes de consola cuando estés utilizando Node.js y no haya más confusiones con los tipos de registros. Ya sabes que en programacion.net puedes proponernos los temas que quieras a través de los comentarios de los artículos en la zona habilitada para ello un poco más abajo de este texto. También puede publicar tus propios tutoriales a través de la intranet para usuarios, pero recuerda que antes debes registrarte. No te preocupes, solicitamos muy pocos datos...
Y tú, ¿también te sentías un poco confuso con esas líneas de color gris antes de descubrir el módulo Chalk que habilita el coloreado de texto en la consola de Node.js? Indícanoslo también en los comentarios...