Hands-on: Readline

Hands-on: Readline

Tulio Faria
Tulio Faria8 de maio de 2017
Neste post vamos fazer um hands-on é de um módulo 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.
Confira o video:
ebFK_aSxo2Y
Assistir vídeo
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!
Tulio Faria
Autor
Tulio Faria8 de maio de 2017

Últimas do Blog