Aceitar entrada a partir da linha de comando na Node.js

Como criar um programa interativo de interface da linha de comando da Node.js usando o módulo embutido readline da Node.js

Autores do Artigo

Como criar um programa interativo de interface da linha de comando da Node.js?

Desde a versão 7 a Node.js fornece o módulo readline para realizar exatamente isto: receber a entrada a partir de uma corrente legível tal como a corrente de process.stdin, que durante a execução de um programa de Node.js é a entrada de terminal, em uma linha de cada vez:

Este pedaço de código pede o nome do utilizador, e uma vez introduzido o texto e pressionada a tecla enter pelo utilizador, enviamos uma saudação.

O método question() mostra o primeiro parâmetro (uma questão) e espera pela entrada do utilizador. Ele chama uma função de resposta uma vez pressionada a tecla enter.

Na função de resposta, fechamos a interface de readline.

O readline oferece vários outros métodos, consulte-os na documentação do pacote cuja ligação foi apresentada acima.

Se precisares de exigir uma senha, é melhor não ecoá-la de volta, mas invés disso mostrar um símbolo *.

O maneira mais simples é usar o pacote readline-sync que é muito similar em termos de API e manipula isto fora da caixa.

Uma solução mais completa e abstrata é fornecida pelo pacote inquirer.js.

Tu podes instalá-lo usando npm install inquirer, e então podes replicar o código acima desta maneira:

O inquirer.js permite-te fazer muitas coisas como pedir várias escolhas, ter botões de rádio, confirmações, e muito mais.

Vale a pena conhecer todas as alternativas, especialmente aquelas embutidas fornecidas pela Node.js, mas se planeias levar a entrada da interface da linha de comando para o próximo nível, inquirer.js é uma escolha ótima.