首页 > 解决方案 > 在不假设有问题的情况下获取用户输入

问题描述

我只想获取用户输入的值

我想要类似于 C#Console.ReadLine()或 Java 的东西bufferedReader.readLine()

有很多关于如何使用 nodejs 获取用户输入的示例,但我发现的所有示例都假设存在问题。

例如:

const readline = require('readline');

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


rl.question('What do you think of Node.js? ', (answer) => {
   ...
}

相反,我想要r1.readLine()没有r1.question()

看起来那里有很多例子,但老实说,其中超过一半的例子看起来就像人们只是互相复制和粘贴。

标签: javascriptnode.js

解决方案


如果您不想为 使用空字符串rl.question,您可以简单地监听line事件,因为您甚至根本不需要向用户提示问题:

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

rl.on('line', (line) => {
    console.log(`You typed ${line}`);
});

文档

只要输入流接收到行尾输入(\n、\r 或 \r\n),就会发出 'line' 事件。这通常发生在用户按下 Enter 或 Return 时。

使用包含单行接收输入的字符串调用侦听器函数。


推荐阅读