📅  最后修改于: 2023-12-03 15:01:41.359000             🧑  作者: Mango
在 JavaScript 中,可以通过终端(命令行)读取用户的输入。这对于需要与用户进行交互的应用程序或脚本非常有用。常见的应用场景包括:命令行界面,交互式应用程序等。
JavaScript 通过 process.stdin
对象提供了从终端读取用户输入的功能。下面的代码片段演示了如何读取用户输入:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('请输入你的名字:', (answer) => {
console.log(`你好,${answer}!`);
rl.close();
});
需要注意的是,rl.question
方法是异步的,它接收两个参数:第一个参数是问题的提示文本,第二个参数是一个回调函数,回调函数中接收用户输入的内容。在回调函数中,我们可以对用户输入的内容进行处理。
rl.close
方法用于关闭读取流,防止程序继续等待用户的输入。
如果需要读取多行输入,我们可以使用 rl.prompt
方法读取多行,例子如下:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.prompt();
rl.on('line', (line) => {
if (line === 'exit') {
rl.close();
} else {
console.log(line);
rl.prompt();
}
});
在这个例子中,我们使用了 rl.prompt
方法打印提示符并等待用户输入。当用户输入一行内容后,会触发 line
事件并执行回调函数。如果用户输入的是 exit,则关闭读取流,否则打印用户输入的内容,并继续等待用户输入下一行。
JavaScript 从终端读取输入是实现与用户交互的重要手段之一,而 readline 模块则是实现这一功能的核心模块。我们可以使用 rl.question
方法读取单行数据,也可以使用 rl.prompt
方法读取多行数据。开发者可以根据不同的场景选择合适的方式。