21xrx.com
2024-11-22 11:31:39 Friday
登录
文章检索 我的文章 写文章
Node.js 如何获取用户输入
2023-07-03 11:19:19 深夜i     --     --
Node js 获取用户输入 控制台输入 stdin readline

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时,可以使用 JavaScript 在服务器端运行。由于 Node.js 是一个非阻塞的 I/O 模型,当用户在客户端输入信息时,可以轻松获取用户输入并进行相应的操作。

获取用户输入的方法有很多种,以下是其中几种常用的方法:

1. 使用 readline 模块

readline 模块是 Node.js 内置的模块之一,它提供了一组 API,可以方便地从用户输入流中读取数据。以下是使用 readline 模块获取用户输入的示例代码:


const readline = require('readline');

const rl = readline.createInterface(

 input: process.stdin);

rl.question('What is your name? ', (answer) => {

 console.log(`Hello, ${answer}!`);

 rl.close();

});

其中,rl.question() 方法用于向用户发起一个问题,并在用户回答后执行回调函数。

2. 使用 process.stdin

process.stdin 是一个可读流对象,可以通过监听 'data' 和 'end' 事件来获取用户输入。以下是使用 process.stdin 获取用户输入的示例代码:


process.stdin.resume();

process.stdin.setEncoding('utf8');

console.log('What is your name? ');

process.stdin.on('data', function (text) {

 console.log(`Hello, ${text.trim()}!`);

});

process.stdin.on('end', function () {

 console.log('end');

});

其中,process.stdin.resume() 方法用于恢复从 stdin 流中暂停读取数据的默认行为,process.stdin.setEncoding('utf8') 方法用于设置输入流编码格式,console.log() 方法用于向用户发起一个问题,并监听 'data' 事件。

3. 使用 process.argv

process.argv 是一个包含命令行参数的数组,其中第一个参数是 Node.js 的可执行文件,第二个参数是执行的 JavaScript 文件名,之后的参数为命令行输入的参数。以下是使用 process.argv 获取用户输入的示例代码:


const args = process.argv.slice(2);

console.log(`Hello, ${args[0]}!`);

其中,process.argv.slice(2) 方法用于获取除前两个元素之外的其他参数。

以上是获取用户输入的几种常用方法,根据实际需要选择合适的方法即可。值得注意的是,在一些特殊场景下,比如 Web 应用中,获取用户输入需要进行一定的安全性检查,以避免恶意攻击。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复