📜  使用 node.js 获取用户输入 - Javascript (1)

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

使用 node.js 获取用户输入 - Javascript

在开发应用程序时,获取用户的输入是不可避免的一个环节。在 Javascript 中,可以通过 Node.js 提供的各种模块来实现获取用户输入的功能。

1. 使用 process.stdin

process.stdin 是 Node.js 中的一个 Readable 流,可以用来获取用户的标准输入。我们可以监听 stdin 的 'data' 事件来获取用户输入,并使用 process.stdout 来输出结果。

process.stdin.on('data', (data) => {
  const userInput = data.toString().trim();
  process.stdout.write(`Your input: ${userInput}\n`);
});

在上面的示例中,我们监听了 process.stdin 的 'data' 事件,并将获取到的数据转换为字符串后去掉前后空格。接着,使用 process.stdout.write 输出用户输入到控制台。需要注意的是,在 Node.js 中使用 console.log 输出结果时,输出结果的末尾会自动添加一个换行符,而使用 process.stdout.write 输出结果时需要手动添加换行符。

2. 使用 readline 模块

readline 是 Node.js 中的一个模块,用来读取用户的输入并输出一些提示或执行一些逻辑。使用 readline 模块可以实现更为灵活的用户输入功能。

const readline = require('readline');

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

rl.question('What is your name? ', (answer) => {
  console.log(`Hello, ${answer}!`);
  rl.close();
});

在上面的示例中,我们通过 readline.createInterface 创建了一个 readline 对象,并通过对象的 question 函数输出了一个提示语句,等待用户输入。当用户输入后,我们可以通过回调函数获取用户输入的结果,处理完逻辑后通过 rl.close() 停止读取用户输入。

结论

以上两种方法都可以用来获取用户的输入,根据实际需求来选择使用哪种方法。同时,我们需要注意在处理用户输入时,要防止用户输入非法数据或数据格式错误导致程序出错或存在安全问题。