Как передать многострочный ввод в программу Node.js? - PullRequest
0 голосов
/ 01 мая 2018

Я создал программу Node.js, которая в основном принимает многострочный ввод, используя модуль readline через prompt. Вот код для того же

    let lineReader = readline.createInterface({
        input: process.stdin,
        output: process.stdout
      });

    lineReader.prompt();  

    let i = 0;
    let communityCards = [];
    let evalCards = [];

    lineReader.on('line', line => {

        console.log('line', line);
    });

    lineReader.on('close', ()=>resolve(evalCards));

Вот мой многострочный ввод

KS AD 3H 7C TD
John 9H 7S
Sam AC KH
Becky JD QC

Он работает нормально, потому что он принимает входные данные из приглашения при запуске node index.js и выводит в stdout строку за строкой, но я хочу, чтобы этот многострочный ввод передавался в мою программу по трубопроводу через stdin и выводился в stdout после ударяя Enter. Примерно так:

$ multiline-input | node index.js

Может кто-нибудь помочь мне разобраться?

1 Ответ

0 голосов
/ 01 мая 2018

Кажется, это вопрос, связанный с оболочкой.

Если вы указали свой многострочный ввод, он должен работать. Примерно так:

$ echo 'KS AD 3H 7C TD
John 9H 7S
Sam AC KH
Becky JD QC' | node index.js

EDIT

Как я понимаю ваш вопрос сейчас, вы хотите добавить каждую прочитанную строку в массив evalCards, поэтому просто используйте следующий обработчик:

lineReader.on('line', line => {
    evalCards.push(line)
})
...