Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Робота з модулем Readline | Створення Консольних Застосунків з Node.js
Розробка бекенду з Node.js та Express.js

Робота з модулем Readline

Свайпніть щоб показати меню

Початок роботи з Readline

Модуль Readline — це вбудований модуль у Node.js, який спрощує зчитування введення від користувача в інтерактивному режимі. Його часто використовують для створення підказок, збору відповідей користувача та побудови інтерактивних сесій запитань і відповідей у командному рядку.

Огляд модуля Readline

Перш ніж перейти до практичного прикладу, розглянемо основні поняття та методи, які надає модуль Readline.

Створення інтерфейсу Readline

Щоб використовувати модуль Readline, зазвичай починають зі створення інтерфейсу Readline, який керує потоками введення та виведення. Ось як створити інтерфейс:

const readline = require("readline");

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});
  • const rl — це інтерфейс Readline;
  • readline.createInterface({ input: process.stdin, output: process.stdout }) налаштовує інтерфейс для зчитування зі стандартного введення (process.stdin) і запису у стандартний вивід (process.stdout).

Збір введених користувачем даних

Після створення інтерфейсу Readline його можна використовувати для збору введених користувачем даних. Найпоширеніший метод для цього — 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) => { ... }) виводить користувачу запит із вказаним повідомленням;
  • Функція зворотного виклику (name) => { ... } виконується після введення відповіді користувачем;
  • name містить введені користувачем дані.

Керування інтерфейсом

Важливо закривати інтерфейс Readline після завершення роботи з ним. Це можна зробити за допомогою rl.close().

Створення інтерактивного запиту

Тепер, коли розглянуто основи, застосуємо знання на практиці та створимо цікаву консольну програму-віщуна. Користувачі вводитимуть свої імена, а застосунок генеруватиме випадкове передбачення.

Ось приклад коду з відео:

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

У цьому прикладі застосовано описані вище концепції для створення інтерактивного застосунку командного рядка. Користувачам пропонується ввести дані, а застосунок генерує випадкові відповіді. Модуль Readline спрощує взаємодію з користувачем у командному рядку, що робить його ідеальним для створення інтерактивних CLI-застосунків.

Опис коду
expand arrow
  • Рядок 1: імпортує вбудований модуль readline;
  • Рядки 3-6: створюють екземпляр readline.Interface з назвою rl. Використовуються потоки process.stdin та process.stdout для введення та виведення користувача;
  • Рядки 8-14: створюють масив з назвою fortunes, який містить декілька повідомлень-пророцтв;
  • Рядок 16: використовує rl.question() для запиту імені користувача. Функція зворотного виклику виконується після введення користувачем даних;
  • Рядок 17: генерує випадковий індекс за допомогою Math.random() та Math.floor() для вибору повідомлення-пророцтва;
  • Рядок 18: отримує повідомлення-пророцтво, що зберігається за згенерованим індексом;
  • Рядок 20: виводить персоналізоване повідомлення-пророцтво з іменем користувача та обраним пророцтвом;
  • Рядок 22: закриває інтерфейс readline та завершує взаємодію.

Підсумок

Цей код створює простий застосунок-пророк у командному рядку з використанням модуля readline. Він збирає ім'я користувача, обирає випадкове пророцтво з масиву, відображає результат і закриває застосунок.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 7

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 2. Розділ 7
some-alt