我想提示用户输入,让用户输入多行文字,点击每行之间输入,然后按CTRL + D或其他一些东西终止输入。
使用" keypress",我可以捕获EOF,但我必须手动处理所有回声,退格处理,终端转义序列等。如果我可以使用" readline"会更好,但是以某种方式用" keypress"拦截CTRL + D(EOF),但我不确定我会怎么做关于那个。
答案 0 :(得分:13)
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);
});