Робота з модулем 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-застосунків.
- Рядок 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. Він збирає ім'я користувача, обирає випадкове пророцтво з масиву, відображає результат і закриває застосунок.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат