Начало работы с readline-sync

  1. Установите readline-sync: прежде чем вы сможете использовать readline-sync, вам необходимо установить его в свой проект Node.js. Откройте терминал и выполните следующую команду:
npm install readline-sync

2. Импортируйте readline-sync: чтобы использовать readline-sync, вам нужно импортировать его в начале вашего скрипта Node.js. Добавьте следующую строку вверху вашего скрипта:

const readline = require('readline-sync');

Прием пользовательского ввода

  1. Запрашивать ввод пользователя: чтобы получить ввод от пользователя, используйте методы question или questionInt. Метод question используется для чтения строк, а questionInt — для целых чисел.
const name = readline.question('What is your name? ');
console.log(`Hello, ${name}!`);

2. Обработка числового ввода: если вы ожидаете, что пользователь введет числовое значение, вы можете использовать questionInt для чтения целого числа или questionFloat для чтения числа с плавающей запятой.

const age = readline.questionInt('What is your age? ');
console.log(`You are ${age} years old.`);

3. Обработка проверок: readline-sync предоставляет простой способ обработки недопустимых входных данных. Вы можете использовать параметр limitMessage, чтобы настроить сообщение об ошибке, когда пользователь вводит недопустимое значение.

const age = readline.questionInt('What is your age? ', {
  limitMessage: 'Please enter a valid age.',
});

4. Выбор меню: Вы можете отобразить меню для пользователя и попросить его сделать выбор, используя метод keyInSelect.

const colors = ['Red', 'Green', 'Blue'];
const index = readline.keyInSelect(colors, 'Select your favorite color: ');
console.log(`You selected: ${colors[index]}`);

5. Управление ограничениями пользовательского ввода: одной из удобных функций readline-sync является возможность изменять параметры по умолчанию с помощью метода setDefaultOptions. Эти измененные параметры по умолчанию будут применяться ко всем последующим вызовам методов в текущем процессе, пока он не будет закрыт.

Вот пример, иллюстрирующий, как эффективно использовать опционы:

// Define a list of colors
const colors = ['blue', 'green', 'yellow', 'red'];

// Set the default options to limit user input to specific colors
readlineSync.setDefaultOptions({ limit: colors });

// Get the user's first color choice
const color1 = readlineSync.question('Please select your favorite color: ');

// Get the user's second color choice
const color2 = readlineSync.question('Great choice! Now pick another color: ');

// Temporarily allow unlimited input for a third color choice
const color3 = readlineSync.question('What is your absolute favorite color? ', { limit: null });

// Get the user's final color choice (limited to the predefined colors)
const color4 = readlineSync.question('Let\'s go back to the choices. Please select a color: ');

Заключение

readline-sync упрощает процесс получения пользовательского ввода в приложении Node.js. Он предоставляет различные методы для чтения строк, целых чисел и чисел с плавающей запятой, а также для обработки проверок и отображения меню. Это полезный пакет для создания интерактивных приложений командной строки.

Не забывайте тщательно обрабатывать пользовательский ввод и проверять его, чтобы предотвратить неожиданное поведение в вашем приложении. С помощью readline-sync вы можете легко создавать привлекательные интерфейсы командной строки. Удачного кодирования!