Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Trabajando con el Módulo Readline | Creación de Aplicaciones de Consola con Node.js
Desarrollo Backend con Node.js y Express.js

Trabajando con el Módulo Readline

Desliza para mostrar el menú

Introducción a Readline

El módulo Readline es un módulo incorporado en Node.js que simplifica la lectura de entradas del usuario de manera interactiva. Se utiliza frecuentemente para crear solicitudes, recopilar respuestas de usuarios y construir sesiones interactivas de preguntas y respuestas en la interfaz de línea de comandos.

Comprensión del módulo Readline

Antes de profundizar en un ejemplo práctico, es importante explorar los conceptos y métodos principales que ofrece el módulo Readline.

Creación de una interfaz Readline

Para utilizar el módulo Readline, normalmente se comienza creando una interfaz Readline que gestiona los flujos de entrada y salida. Así es como se crea una interfaz:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl representa la interfaz Readline;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) configura la interfaz para leer desde la entrada estándar (process.stdin) y escribir en la salida estándar (process.stdout).

Recopilación de entrada del usuario

Una vez que tenemos una interfaz de Readline, podemos utilizarla para recopilar la entrada del usuario. El método más común para este propósito es 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) => { ... }) solicita al usuario una entrada con el mensaje proporcionado;
  • La función de devolución de llamada (name) => { ... } se ejecuta cuando el usuario ingresa su respuesta;
  • name contiene la entrada del usuario.

Gestión de la interfaz

Es importante cerrar la interfaz de Readline cuando hayamos terminado de usarla. Podemos hacerlo utilizando rl.close().

Creación de un mensaje interactivo

Ahora que hemos cubierto los conceptos básicos, pongamos en práctica nuestros conocimientos y creemos una divertida aplicación de adivinador de la fortuna en la línea de comandos. Los usuarios ingresarán sus nombres y la aplicación generará un mensaje de fortuna aleatorio.

Aquí tienes el ejemplo de código del video:

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();
});

En este ejemplo, se han aplicado los conceptos anteriores para crear una aplicación interactiva de línea de comandos. Se solicita al usuario que ingrese datos y la aplicación genera respuestas aleatorias. El módulo Readline simplifica la interacción con el usuario en la interfaz de línea de comandos, lo que lo hace ideal para crear aplicaciones CLI interactivas.

Descripción del código
expand arrow
  • Línea 1: importa el módulo incorporado readline;
  • Líneas 3-6: crea una instancia de readline.Interface llamada rl. Utiliza los flujos process.stdin y process.stdout para la entrada y salida del usuario;
  • Líneas 8-14: crea un arreglo llamado fortunes que contiene varios mensajes de fortuna;
  • Línea 16: utiliza rl.question() para solicitar el nombre del usuario. La función de devolución de llamada se ejecuta después de que el usuario proporciona una entrada;
  • Línea 17: genera un índice aleatorio usando Math.random() y Math.floor() para seleccionar un mensaje de fortuna;
  • Línea 18: recupera el mensaje de fortuna almacenado en el índice generado;
  • Línea 20: muestra un mensaje de fortuna personalizado que contiene el nombre del usuario y la fortuna seleccionada;
  • Línea 22: cierra la interfaz de readline y finaliza la interacción.

Resumen

Este código crea una aplicación sencilla de adivinador de la fortuna en la línea de comandos utilizando el módulo readline. Recoge el nombre del usuario, selecciona una fortuna aleatoria de un arreglo, muestra el resultado y cierra la aplicación.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Trabajando con el Módulo Readline

Introducción a Readline

El módulo Readline es un módulo incorporado en Node.js que simplifica la lectura de entradas del usuario de manera interactiva. Se utiliza frecuentemente para crear solicitudes, recopilar respuestas de usuarios y construir sesiones interactivas de preguntas y respuestas en la interfaz de línea de comandos.

Comprensión del módulo Readline

Antes de profundizar en un ejemplo práctico, es importante explorar los conceptos y métodos principales que ofrece el módulo Readline.

Creación de una interfaz Readline

Para utilizar el módulo Readline, normalmente se comienza creando una interfaz Readline que gestiona los flujos de entrada y salida. Así es como se crea una interfaz:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl representa la interfaz Readline;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) configura la interfaz para leer desde la entrada estándar (process.stdin) y escribir en la salida estándar (process.stdout).

Recopilación de entrada del usuario

Una vez que tenemos una interfaz de Readline, podemos utilizarla para recopilar la entrada del usuario. El método más común para este propósito es 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) => { ... }) solicita al usuario una entrada con el mensaje proporcionado;
  • La función de devolución de llamada (name) => { ... } se ejecuta cuando el usuario ingresa su respuesta;
  • name contiene la entrada del usuario.

Gestión de la interfaz

Es importante cerrar la interfaz de Readline cuando hayamos terminado de usarla. Podemos hacerlo utilizando rl.close().

Creación de un mensaje interactivo

Ahora que hemos cubierto los conceptos básicos, pongamos en práctica nuestros conocimientos y creemos una divertida aplicación de adivinador de la fortuna en la línea de comandos. Los usuarios ingresarán sus nombres y la aplicación generará un mensaje de fortuna aleatorio.

Aquí tienes el ejemplo de código del video:

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();
});

En este ejemplo, se han aplicado los conceptos anteriores para crear una aplicación interactiva de línea de comandos. Se solicita al usuario que ingrese datos y la aplicación genera respuestas aleatorias. El módulo Readline simplifica la interacción con el usuario en la interfaz de línea de comandos, lo que lo hace ideal para crear aplicaciones CLI interactivas.

Descripción del código
expand arrow
  • Línea 1: importa el módulo incorporado readline;
  • Líneas 3-6: crea una instancia de readline.Interface llamada rl. Utiliza los flujos process.stdin y process.stdout para la entrada y salida del usuario;
  • Líneas 8-14: crea un arreglo llamado fortunes que contiene varios mensajes de fortuna;
  • Línea 16: utiliza rl.question() para solicitar el nombre del usuario. La función de devolución de llamada se ejecuta después de que el usuario proporciona una entrada;
  • Línea 17: genera un índice aleatorio usando Math.random() y Math.floor() para seleccionar un mensaje de fortuna;
  • Línea 18: recupera el mensaje de fortuna almacenado en el índice generado;
  • Línea 20: muestra un mensaje de fortuna personalizado que contiene el nombre del usuario y la fortuna seleccionada;
  • Línea 22: cierra la interfaz de readline y finaliza la interacción.

Resumen

Este código crea una aplicación sencilla de adivinador de la fortuna en la línea de comandos utilizando el módulo readline. Recoge el nombre del usuario, selecciona una fortuna aleatoria de un arreglo, muestra el resultado y cierra la aplicación.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7
some-alt