📌  相关文章
📜  如何在 nodejs 中获取用户的输入 - Javascript (1)

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

如何在 Node.js 中获取用户的输入

在 Node.js 中,可以使用 process.stdin 对象来获取用户的输入。用户可以通过命令行来输入参数,或者通过标准输入流 stdin 输入数据。

通过命令行获取参数

在 Node.js 中,可以使用 process.argv 对象来获取用户在命令行中输入的参数。process.argv 是一个数组,其中第一个元素是 Node.js 的可执行文件的路径,第二个元素是当前脚本文件的路径,后面的元素则是命令行中输入的参数。

// 获取命令行中输入的参数
const args = process.argv.slice(2);
console.log(args);

上面的代码会输出一个数组,其中包含了命令行中输入的所有参数。

例如,执行以下命令:

node index.js hello world

则上面的代码会输出:

[ 'hello', 'world' ]
通过标准输入流获取数据

除了通过命令行参数获取用户的输入之外,还可以使用标准输入流 stdin 来获取用户的输入。

// 监听标准输入流
process.stdin.on('data', function (data) {
  console.log(data.toString());
});

上面的代码中,通过监听 stdin 对象的 data 事件,当有数据到达时就会触发该事件。在事件处理函数中,可以通过 console.log 输出获取到的数据。

为了结束输入,可以通过按下 Ctrl + D 组合键来发送一个结束信号。

通过 readline 模块获取数据

除了使用标准输入流之外,还可以使用 Node.js 内置的 readline 模块来获取用户的输入。

const readline = require('readline');

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

rl.question('请输入你的名字: ', (name) => {
  console.log(`你好,${name}!`);
  rl.close();
});

上面的代码中,通过创建一个 readline 实例来读取用户的输入。在 question 方法中,可以指定一个提示信息来提示用户输入数据。当用户输入完毕并按下回车键时,会触发 close 事件,可以在事件处理函数中输出获取到的数据。

以上就是在 Node.js 中获取用户输入的方法。可以根据需求选择适合自己的方法。