如何将多行输入传递给Node.js程序?

时间:2018-05-01 06:57:14

标签: javascript node.js shell stdout stdin

我已经构建了Node.js程序,该程序基本上通过prompt使用readline模块进行多行输入。这是相同

的代码
    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 :(得分:1)

这似乎是一个与shell有关的问题。

如果你想要多线输入,它应该可以工作。这样的事情:

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

修改

正如我现在理解您的问题,您想要将每行读取添加到数组evalCards,所以只需使用以下处理程序:

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