Salida a la línea de comando usando Node

Cómo imprimir en la consola de línea de comandos usando Node, desde el archivo console.log básico hasta escenarios más complejos

Salida básica usando el módulo de consola

El nodo proporciona unconsolemóduloque proporciona toneladas de formas muy útiles de interactuar con la línea de comandos.

Básicamente es lo mismo que elconsoleobjeto que encuentre en el navegador.

El método más básico y más utilizado esconsole.log(), que imprime la cadena que le pasa a la consola.

Si pasa un objeto, lo representará como una cadena.

Puede pasar varias variables aconsole.log, por ejemplo:

const x = 'x'
const y = 'y'
console.log(x, y)

y Node imprimirá ambos.

También podemos formatear frases bonitas pasando variables y un especificador de formato.

Por ejemplo:

console.log('My %s has %d years', 'cat', 2)
  • %sformatear una variable como una cadena
  • %do%iformatear una variable como un entero
  • %fformatear una variable como un número de punto flotante
  • %Outilizado para imprimir una representación de objeto

Ejemplo:

console.log('%O', Number)

Limpiar la consola

console.clear()limpia la consola (el comportamiento puede depender de la consola utilizada)

Contando elementos

console.count()es un método útil.

Toma este código:

const x = 1
const y = 2
const z = 3
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of x is ' + x + ' and has been checked .. how many times?'
)
console.count(
  'The value of y is ' + y + ' and has been checked .. how many times?'
)

Lo que sucede es que el recuento contará el número de veces que se imprime una cadena e imprimirá el recuento a su lado:

Puedes contar manzanas y naranjas:

const oranges = ['orange', 'orange']
const apples = ['just one apple']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

Puede haber casos en los que sea útil imprimir el seguimiento de la pila de llamadas de una función, tal vez para responder a la pregunta¿Cómo llegaste a esa parte del código?

Puedes hacerlo usandoconsole.trace():

const function2 = () => console.trace()
const function1 = () => function2()
function1()

Esto imprimirá el seguimiento de la pila. Esto es lo que se imprime si intento esto en Node REPL:

Trace
    at function2 (repl:1:33)
    at function1 (repl:1:25)
    at repl:1:1
    at ContextifyScript.Script.runInThisContext (vm.js:44:33)
    at REPLServer.defaultEval (repl.js:239:29)
    at bound (domain.js:301:14)
    at REPLServer.runBound [as eval] (domain.js:314:12)
    at REPLServer.onLine (repl.js:440:10)
    at emitOne (events.js:120:20)
    at REPLServer.emit (events.js:210:7)

Calcule el tiempo invertido

Puede calcular fácilmente cuánto tiempo tarda en ejecutarse una función, utilizandotime()ytimeEnd()

const doSomething = () => console.log('test')
const measureDoingSomething = () => {
  console.time('doSomething()')
  //do something, and measure the time it takes
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

stdout y stderr

Como vimos, console.log es ideal para imprimir mensajes en la consola. Esto es lo que se llama salida estándar, ostdout.

console.errorimprime a lastderrArroyo.

No aparecerá en la consola, pero aparecerá en el registro de errores.

Colorea la salida

Puede colorear la salida de su texto en la consola usando secuencias de escape. Una secuencia de escape es un conjunto de caracteres que identifica un color.

Ejemplo:

console.log('\x1b[33m%s\x1b[0m', 'hi!')

Puede probar eso en Node REPL, y se imprimiráhi!en amarillo.

Sin embargo, esta es la forma de bajo nivel de hacer esto. La forma más sencilla de colorear la salida de la consola es utilizando una biblioteca.Tizaes una biblioteca de este tipo y, además de colorear, también ayuda con otras funciones de estilo, como poner el texto en negrita, cursiva o subrayado.

Lo instalas connpm install chalk, entonces puedes usarlo:

const chalk = require('chalk')
console.log(chalk.yellow('hi!'))

Usandochalk.yellowes mucho más conveniente que intentar recordar los códigos de escape, y el código es mucho más legible.

Consulte el enlace del proyecto que publiqué anteriormente para obtener más ejemplos de uso.

Crea una barra de progreso

Progresoes un paquete increíble para crear una barra de progreso en la consola. Instálelo usandonpm install progress

Este fragmento crea una barra de progreso de 10 pasos y cada 100 ms se completa un paso. Cuando la barra se completa, borramos el intervalo:

const ProgressBar = require('progress')

const bar = new ProgressBar(’:bar’, { total: 10 }) const timer = setInterval(() => { bar.tick() if (bar.complete) { clearInterval(timer) } }, 100)

Descarga mi gratisManual de Node.js


Más tutoriales de nodos: