Trabalhando com o Módulo Readline
Deslize para mostrar o menu
Introdução ao Readline
O módulo Readline é um módulo nativo do Node.js que simplifica a leitura de entradas do usuário de forma interativa. É frequentemente utilizado para criar prompts, coletar respostas dos usuários e construir sessões interativas de perguntas e respostas na interface de linha de comando.
Compreendendo o Módulo Readline
Antes de explorar um exemplo prático, vamos analisar os conceitos principais e os métodos fornecidos pelo módulo Readline.
Criando uma Interface Readline
Para utilizar o módulo Readline, normalmente começamos criando uma interface Readline que gerencia os fluxos de entrada e saída. Veja como criar uma interface:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const rlrepresenta a interface Readline;readline.createInterface({ input: process.stdin, output: process.stdout })configura a interface para ler da entrada padrão (process.stdin) e escrever na saída padrão (process.stdout).
Coleta de entrada do usuário
Após criar uma interface Readline, é possível utilizá-la para coletar a entrada do usuário. O método mais comum para esse propósito é o rl.question():
rl.question("Please enter your name: ", (name) => {
// User input is available as `name`
console.log(`Hello, ${name}!`);
rl.close();
});
rl.question("Please enter your name: ", (name) => { ... })exibe uma mensagem solicitando a entrada do usuário;- A função de callback
(name) => { ... }é executada quando o usuário insere sua resposta; namecontém o valor inserido pelo usuário.
Gerenciamento da interface
É importante fechar a interface Readline quando não for mais necessária. Isso pode ser feito utilizando rl.close().
Criação de um prompt interativo
Agora que cobrimos o básico, vamos aplicar o conhecimento adquirido e criar um divertido oráculo no terminal. Os usuários irão inserir seus nomes e a aplicação irá gerar uma mensagem de sorte aleatória.
Aqui está o exemplo de código apresentado no vídeo:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const fortunes = [
"You will find unexpected joy in the little things.",
"A new opportunity will open doors for you.",
"Adventure is just around the corner.",
"Embrace change, and good things will follow.",
"Patience will bring you great rewards.",
];
rl.question("Welcome to the Fortune Teller! What's your name? ", (name) => {
const randomIndex = Math.floor(Math.random() * fortunes.length);
const randomFortune = fortunes[randomIndex];
console.log(`Hello, ${name}! Your fortune today: ${randomFortune}`);
rl.close();
});
Neste exemplo, aplicamos os conceitos acima para criar uma aplicação interativa de linha de comando. Os usuários são solicitados a fornecer uma entrada, e a aplicação gera respostas aleatórias. O módulo Readline simplifica a interação do usuário na interface de linha de comando, tornando-o ideal para criar aplicações CLI interativas.
- Linha 1: importa o módulo nativo
readline; - Linhas 3-6: cria uma instância de
readline.Interfacechamadarl. Utiliza os streamsprocess.stdineprocess.stdoutpara entrada e saída do usuário; - Linhas 8-14: cria um array chamado
fortunescontendo várias mensagens de sorte; - Linha 16: utiliza
rl.question()para solicitar o nome do usuário. A função de callback é executada após o usuário fornecer a entrada; - Linha 17: gera um índice aleatório usando
Math.random()eMath.floor()para selecionar uma mensagem de sorte; - Linha 18: recupera a mensagem de sorte armazenada no índice gerado;
- Linha 20: exibe uma mensagem de sorte personalizada contendo o nome do usuário e a sorte selecionada;
- Linha 22: fecha a interface
readlinee encerra a interação.
Resumo
Este código cria uma aplicação simples de "fortune teller" na linha de comando utilizando o módulo readline. Ele coleta o nome do usuário, seleciona uma sorte aleatória de um array, exibe o resultado e encerra a aplicação.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Trabalhando com o Módulo Readline
Introdução ao Readline
O módulo Readline é um módulo nativo do Node.js que simplifica a leitura de entradas do usuário de forma interativa. É frequentemente utilizado para criar prompts, coletar respostas dos usuários e construir sessões interativas de perguntas e respostas na interface de linha de comando.
Compreendendo o Módulo Readline
Antes de explorar um exemplo prático, vamos analisar os conceitos principais e os métodos fornecidos pelo módulo Readline.
Criando uma Interface Readline
Para utilizar o módulo Readline, normalmente começamos criando uma interface Readline que gerencia os fluxos de entrada e saída. Veja como criar uma interface:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const rlrepresenta a interface Readline;readline.createInterface({ input: process.stdin, output: process.stdout })configura a interface para ler da entrada padrão (process.stdin) e escrever na saída padrão (process.stdout).
Coleta de entrada do usuário
Após criar uma interface Readline, é possível utilizá-la para coletar a entrada do usuário. O método mais comum para esse propósito é o rl.question():
rl.question("Please enter your name: ", (name) => {
// User input is available as `name`
console.log(`Hello, ${name}!`);
rl.close();
});
rl.question("Please enter your name: ", (name) => { ... })exibe uma mensagem solicitando a entrada do usuário;- A função de callback
(name) => { ... }é executada quando o usuário insere sua resposta; namecontém o valor inserido pelo usuário.
Gerenciamento da interface
É importante fechar a interface Readline quando não for mais necessária. Isso pode ser feito utilizando rl.close().
Criação de um prompt interativo
Agora que cobrimos o básico, vamos aplicar o conhecimento adquirido e criar um divertido oráculo no terminal. Os usuários irão inserir seus nomes e a aplicação irá gerar uma mensagem de sorte aleatória.
Aqui está o exemplo de código apresentado no vídeo:
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
const fortunes = [
"You will find unexpected joy in the little things.",
"A new opportunity will open doors for you.",
"Adventure is just around the corner.",
"Embrace change, and good things will follow.",
"Patience will bring you great rewards.",
];
rl.question("Welcome to the Fortune Teller! What's your name? ", (name) => {
const randomIndex = Math.floor(Math.random() * fortunes.length);
const randomFortune = fortunes[randomIndex];
console.log(`Hello, ${name}! Your fortune today: ${randomFortune}`);
rl.close();
});
Neste exemplo, aplicamos os conceitos acima para criar uma aplicação interativa de linha de comando. Os usuários são solicitados a fornecer uma entrada, e a aplicação gera respostas aleatórias. O módulo Readline simplifica a interação do usuário na interface de linha de comando, tornando-o ideal para criar aplicações CLI interativas.
- Linha 1: importa o módulo nativo
readline; - Linhas 3-6: cria uma instância de
readline.Interfacechamadarl. Utiliza os streamsprocess.stdineprocess.stdoutpara entrada e saída do usuário; - Linhas 8-14: cria um array chamado
fortunescontendo várias mensagens de sorte; - Linha 16: utiliza
rl.question()para solicitar o nome do usuário. A função de callback é executada após o usuário fornecer a entrada; - Linha 17: gera um índice aleatório usando
Math.random()eMath.floor()para selecionar uma mensagem de sorte; - Linha 18: recupera a mensagem de sorte armazenada no índice gerado;
- Linha 20: exibe uma mensagem de sorte personalizada contendo o nome do usuário e a sorte selecionada;
- Linha 22: fecha a interface
readlinee encerra a interação.
Resumo
Este código cria uma aplicação simples de "fortune teller" na linha de comando utilizando o módulo readline. Ele coleta o nome do usuário, seleciona uma sorte aleatória de um array, exibe o resultado e encerra a aplicação.
Obrigado pelo seu feedback!