Node.js多行输入

时间:2014-10-13 23:01:16

标签: node.js keypress readline eof command-line-interface

我想提示用户输入,让用户输入多行文字,点击每行之间输入,然后按CTRL + D或其他一些东西终止输入。

使用" keypress",我可以捕获EOF,但我必须手动处理所有回声,退格处理,终端转义序列等。如果我可以使用" readline"会更好,但是以某种方式用" keypress"拦截CTRL + D(EOF),但我不确定我会怎么做关于那个。

1 个答案:

答案 0 :(得分:13)

您可以使用lineclose事件:

var readline = require('readline');

var input = [];

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

rl.prompt();

rl.on('line', function (cmd) {

    input.push(cmd);
});

rl.on('close', function (cmd) {

    console.log(input.join('\n'));
    process.exit(0);
});