Saída para linha de comando usando a Node.js

Como imprimir na consola da linha de comando usando a Node.js, desde o console.log básico à cenários mais complexos

Autores do Artigo
Tabela de Conteúdos

Saída básica usando o módulo console

A Node.js fornece um módulo console que oferece montes de maneiras úteis de interagir com a linha de comando.

É basicamente o mesmo objeto console que encontras no navegador.

O método mais básico e usado é console.log(), que imprime a sequência de caracteres que passas para a consola.

Se passas um objeto, será apresentado como uma sequência de caracteres. Tu podes passar várias variáveis ao console.log, por exemplo:

e a Node.js imprimirá ambos.

Nós podemos também formatar frases passando variáveis e um especificador de formato.

Por exemplo:

  • %s formata uma variável como uma sequência de caracteres
  • %d formata uma variável como um número
  • %i formata uma variável como um número mas apenas a sua parte inteira
  • %o formata uma variável como um objeto

Por exemplo:

Limpar a consola

O console.clear() limpa a consola (o comportamento pode depender da consola usada).

Contando os elementos

O console.count() é um método prático.

Considere o seguinte código:

O que acontece é que o console.count() contará o número de vezes uma sequência de caracteres foi imprimida, e imprimirá a contagem próximo a ela:

Tu podes apenas contar maçãs e laranjas:

Reiniciar a contagem

O método console.countReset() reinicia o contador usado com o console.count().

Nós usaremos o exemplo das maças e laranjas para demonstrar isto:

Nota como a chamada para console.countReset('orange') reinicia o valor do contador à zero.

Imprimir o rasto da pilha

É possível que existam casos onde é útil imprimir a chamada do rasto da pilha de uma função, talvez para responder a questão como chegaste a esta parte do código?.

Tu podes fazer isto usando o console.trace():

Isto imprimirá o rasto da pilha. Isto é o que é imprimido se experimentares isto na REPL da Node.js:

Calcular o tempo gasto

Tu podes facilmente calcular quanto tempo uma função leva para executar, usando time() e timeEnd():

stdout e stderr

Conforme vimos o console.log é excelente para imprimir mensagens na Consola. Isto é o que é chamada saída padrão, ou stout.

O console.error imprime para a corrente de stderr.

Isto não aparecerá na consola, mas aparecerá no registo de erro.

Colorir a saída

Tu podes colorir a saída do teu texto na consola usando sequências de fuga. Uma sequência de fuga é um conjunto de caracteres que identifica uma cor.

Por exemplo:

Tu podes experimentar isto na REPL da Node.js, e imprimirá hi! em amarelo.

No entanto, isto é a maneira de baixo nível de fazer isto. A maneira mais simples de colorir a saída da consola é usando uma biblioteca. Chalk é a tal biblioteca, e além de colorir, também ajuda com outras facilidades de estilização, como tornar o texto negrito, itálico ou sublinhado.

Tu podes instalá-la com npm install chalk@4, então podes usá-la:

Usar a chalk.yellow é mais conveniente do que tentar lembrar os códigos de fuga, e o código é muito mais legível.

Consulte a ligação do projeto anunciada acima para mais exemplos.

Criar uma barra de progresso

O progress é um pacote incrível para criar uma barra de progresso na consola. Instale-o usando npm install progress.

Este trecho cria uma barra de progresso de 10 etapas e a cada 100 milissegundos uma etapa é concluída. Quando a barra concluir limpados o intervalo: