Начало работы с readline-sync
- Установите
readline-sync
: прежде чем вы сможете использоватьreadline-sync
, вам необходимо установить его в свой проект Node.js. Откройте терминал и выполните следующую команду:
npm install readline-sync
2. Импортируйте readline-sync: чтобы использовать readline-sync, вам нужно импортировать его в начале вашего скрипта Node.js. Добавьте следующую строку вверху вашего скрипта:
const readline = require('readline-sync');
Прием пользовательского ввода
- Запрашивать ввод пользователя: чтобы получить ввод от пользователя, используйте методы
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
вы можете легко создавать привлекательные интерфейсы командной строки. Удачного кодирования!