📌  相关文章
📜  javascript 从终端读取输入 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:41.359000             🧑  作者: Mango

JavaScript 从终端读取输入

在 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 方法读取多行数据。开发者可以根据不同的场景选择合适的方式。