Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Trabalhando com o Módulo Readline | Construindo Aplicações de Console com Node.js
Desenvolvimento Backend com Node.js e Express.js

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 rl representa 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;
  • name conté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.

Descrição do código
expand arrow
  • Linha 1: importa o módulo nativo readline;
  • Linhas 3-6: cria uma instância de readline.Interface chamada rl. Utiliza os streams process.stdin e process.stdout para entrada e saída do usuário;
  • Linhas 8-14: cria um array chamado fortunes contendo 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() e Math.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 readline e 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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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 rl representa 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;
  • name conté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.

Descrição do código
expand arrow
  • Linha 1: importa o módulo nativo readline;
  • Linhas 3-6: cria uma instância de readline.Interface chamada rl. Utiliza os streams process.stdin e process.stdout para entrada e saída do usuário;
  • Linhas 8-14: cria um array chamado fortunes contendo 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() e Math.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 readline e 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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 7
some-alt