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
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.