Node.js无需打印换行符即可获取用户输入

时间:2018-12-06 12:15:26

标签: javascript node.js readline

使用readline.question()时,您总是在用户输入的末尾得到换行符。如何删除该换行符或不从头开始输出?

例如,考虑以下代码:

const readline = require("readline");
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
    terminal: true
});
rl.question("Question: ", line => {
    console.log("?");
});

预期:

Question: [User question]?

实际:

Question: [User question]
?

这会要求用户输入一些文本,并在用户输入的末尾添加一个?标记。但是?标记在下一行。

1 个答案:

答案 0 :(得分:1)

问号应该是rl.question()第一个参数中字符串的一部分。 Readline docs中的示例:

rl.question('What is your favorite food? ', (answer) => {
  console.log(`Oh, so your favorite food is ${answer}`);
});

如果您要使用的变量不包含?符号,则可以执行以下操作:

rl.question(thisVar + '?', line => {
    // do whatever
});