Neste post vamos fazer um hands-on é de um modo padrão com o core do node: o readline. O que temos que fazer? Vamos importar primeiro o readline e instanciar um novo readline. Como o readline é um modulo que permite que lidemos com entrada e saída, podemos atrelar um readable stream no input e output padrão. Pra que…
por: Tulio Faria
Categoria: Video-Tutorial
Neste post vamos fazer um hands-on é de um modo padrão com o core do node: o readline.
O que temos que fazer?
Vamos importar primeiro o readline e instanciar um novo readline.
const readline = require('readline')
const rl = readline.createInterface ({
input: process.stdin,
output: process.stout
})Como o readline é um modulo que permite que lidemos com entrada e saída, podemos atrelar um readable stream no input e output padrão.
Pra que serve isso?
Podemos construir várias ‘ferramentinhas’ com o readline, a principal delas é a seguinte:
rl.on('line', (line)==>{
console.log('line >>', line)
})E toda vez que eu digitar algo, ele irá retornar o que escrevi adicionando o que esta no line. Mas não é só isso. Podemos saber, por exemplo, se o usuário apertou Ctrl+C para fechar o prompt:
rl.on('line', (line)==>{
console.log('line >>', line)
})
rl.on('SIGINT', () => {
console.log('bye'),
rl.pause()
})Ao fazer isso, quando o usuário apertar Ctrl+C ele irá escrever ‘bye’ e irá sair, isso acontece, pois estamos chamando o rl.pause() já que estamos pausando e não pegando mais nada do stdin.
Podemos criar várias formas de interação, vou dar mais um exemplo prático.
rl.question('qual o seu nome?', (nome)=>{
console.log('prazer ', nome)
})Rodando o node, a pergunta irá aparecer e ao escrever o console.log vai ser retorndado: prazer mais o nome que você digitou.
Em Java, temos algo bem semelhante. Conseguimos dar o readline no stream e ele devolve a linha digitada pelo usuário.
Conclusão
Apenas com o realine já é possível construir uma ferramenta simples como ler dois arquivos e fazer algo apenas utilizando puramente o rl.on e o rl.question.
Curta o DevPleno no Facebook, inscreva-se no canal e não se esqueça de cadastrar seu e-mail para não perder as novidades. Ah, fique à vontade para deixar suas dúvidas e sugestões nos comentários. Abraço!