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

bookTrabalhando 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 do usuário 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, é importante conhecer os conceitos principais e métodos fornecidos pelo módulo Readline.

Criando uma Interface Readline

Para utilizar o módulo Readline, normalmente iniciamos 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 a entrada fornecida pelo usuário.

Gerenciamento da Interface

É fundamental fechar a interface Readline ao finalizar seu uso. Isso pode ser feito utilizando rl.close().

Criação de um Prompt Interativo

Agora que os conceitos básicos foram apresentados, vamos aplicar o conhecimento adquirido e criar um divertido oráculo no terminal. Os usuários informarão 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, os conceitos apresentados acima foram aplicados para criar uma aplicação interativa de linha de comando. 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.

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

Suggested prompts:

Can you explain how rl.question() works in more detail?

What happens if I don't call rl.close() after collecting input?

Can I customize the prompt message or add more questions for the user?

Awesome!

Completion rate improved to 2.56

bookTrabalhando 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 do usuário 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, é importante conhecer os conceitos principais e métodos fornecidos pelo módulo Readline.

Criando uma Interface Readline

Para utilizar o módulo Readline, normalmente iniciamos 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 a entrada fornecida pelo usuário.

Gerenciamento da Interface

É fundamental fechar a interface Readline ao finalizar seu uso. Isso pode ser feito utilizando rl.close().

Criação de um Prompt Interativo

Agora que os conceitos básicos foram apresentados, vamos aplicar o conhecimento adquirido e criar um divertido oráculo no terminal. Os usuários informarão 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, os conceitos apresentados acima foram aplicados para criar uma aplicação interativa de linha de comando. 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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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