Как мне получить консольный ввод в JavaScript? - PullRequest
50 голосов
/ 25 июня 2010

В настоящее время я использую spidermonkey для запуска своего кода JavaScript. Мне интересно, есть ли функция для получения ввода из консоли, аналогичная тому, как это делает Python:

var = raw_input()  

Или в C ++:

std::cin >> var;

Я осмотрелся и все, что я нашел до сих пор, - это как получить информацию из браузера с помощью функций prompt () и verify ().

Ответы [ 3 ]

38 голосов
/ 25 июня 2010
12 голосов
/ 20 июля 2016

В простом JavaScript просто введите response = readline() после печати приглашения.

В Node.js вам необходимо использовать модуль * readline : const readline = require('readline')

2 голосов
/ 03 марта 2019

Как вы упомянули, prompt работает для браузеров вплоть до IE:

var answer = prompt('question', 'defaultAnswer');

prompt in IE

Для Node.js> v7.6 вы можете использовать console-read-write, который является оболочкой для модуля низкого уровня readline:

const io = require('console-read-write');

async function main() {
  // Simple readline scenario
  io.write('I will echo whatever you write!');
  io.write(await io.read());

  // Simple question scenario
  io.write(`hello ${await io.ask('Who are you?')}!`);

  // Since you are not blocking the IO, you can go wild with while loops!
  let saidHi = false;
  while (!saidHi) {
    io.write('Say hi or I will repeat...');
    saidHi = await io.read() === 'hi';
  }

  io.write('Thanks! Now you may leave.');
}

main();
// I will echo whatever you write!
// > ok
// ok
// Who are you? someone
// hello someone!
// Say hi or I will repeat...
// > no
// Say hi or I will repeat...
// > ok
// Say hi or I will repeat...
// > hi
// Thanks! Now you may leave.

Раскрытие информации Я являюсь автором и сопровождающим консоли-чтения-записи

Для SpiderMonkey, просто readline, как предложено @ MooGoo и @Zaz.

...