Node.js多行input

我想提示用户input,让用户input多行文本,在每行之间敲入回车,然后按CTRL + D或类似的东西终止input。

使用“按键”,我可以捕捉EOF,但是我将不得不手动处理所有回显,退格处理,terminal转义序列等。 如果我可以使用“readline”会好得多,但是用“按键”拦截CTRL + D(EOF),但我不知道该怎么去做。

您可以使用该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); });