Чтение значения из console, в интерактивном режиме

Я подумал сделать простой серверный http-сервер с некоторым расширением консоли. Я нашел фрагмент для чтения из данных командной строки.

  var i = rl.createInterface(process.stdin, process.stdout, null);
  i.question('Write your name: ', function(answer) {
    console.log('Nice to meet you> ' + answer);
    i.close();
    process.stdin.destroy();

  });

Хорошо, если задавать вопросы несколько раз, я не могу просто использовать цикл while (done) {} ? Также хорошо, если сервер получает вывод во время вопроса, это портит строку.

145
задан jpaugh 20 December 2017 в 18:54
поделиться

1 ответ

Самый Легкий путь состоит в том, чтобы использовать readline-синхронизацию

, Это обрабатывает один за другим вход и помещает.

npm i readline-sync

, например:

var firstPrompt = readlineSync.question('Are you sure want to initialize new db? This will drop whole database and create new one, Enter: (yes/no) ');

if (firstPrompt === 'yes') {
    console.log('--firstPrompt--', firstPrompt)
    startProcess()
} else if (firstPrompt === 'no') {
    var secondPrompt = readlineSync.question('Do you want to modify migration?, Enter: (yes/no) ');
    console.log('secondPrompt ', secondPrompt)
    startAnother()
} else {
    console.log('Invalid Input')
    process.exit(0)
}
0
ответ дан 23 November 2019 в 22:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: