На этой странице

    Как сделать CLI-программу на Node.js интерактивной?

    Начиная с версии 7 Node.js предоставляет модуль readline как раз для этого: получать ввод из читаемого потока, например из потока process.stdin, который во время выполнения программы на Node.js является вводом из терминала, по одной строке за раз.

    const readline = require('node:readline');
    
    const rl = readline.createInterface({
      input: process.stdin,
      output: process.stdout,
    });
    
    rl.question(`What's your name?`, name => {
      console.log(`Hi ${name}!`);
      rl.close();
    });

    Этот фрагмент кода спрашивает имя пользователя, и как только текст введён и пользователь нажимает enter, мы отправляем приветствие.

    Метод question() показывает первый параметр (вопрос) и ждёт ввода пользователя. Он вызывает функцию обратного вызова (callback), как только нажат enter.

    В этой функции обратного вызова мы закрываем интерфейс readline.

    readline предлагает и несколько других методов — посмотрите их в документации пакета по ссылке выше.

    Если вам нужно запросить пароль, лучше не отображать его обратно (echo), а вместо этого показывать символ *.