Node.js readline模块解析
readline模块允许开发者以逐行的方式从可读流(例如 process.stdin
)读取数据。尽管在 Node.js 命令行模式下该模块默认引入,但在脚本中使用时,需要手动引入:
const readline = require('readline');
创建readline接口实例
创建 readline 接口实例需要提供一个包含以下属性的对象:
input
:(必需) 监听的可读流。output
:(必需) readline 写入的可写流。completer
:(可选) 用于 Tab 自动补全的函数,不常用。terminal
:(可选) 布尔值,指示是否将input
和output
流视为 TTY 设备。
以下代码演示了如何创建一个 readline 接口实例:
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
readline 方法
readline 接口实例提供以下常用方法:
rl.question(query, callback)
:在终端输出query
并等待用户输入,将用户输入作为参数传递给callback
函数。rl.on('line', (input) => {})
:监听line
事件,每当用户输入一行内容并按下回车键时触发,将用户输入作为参数传递给回调函数。rl.close()
:关闭rl
实例,停止监听输入。
示例
以下示例演示了如何使用 readline 模块实现一个简单的命令行交互程序:
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
rl.question('你的名字是? ', (name) => {
console.log(`你好,${name}!`);
rl.close();
});
该程序会询问用户的名字,并在用户输入后输出问候语。
总结
readline 模块为 Node.js 开发者提供了便捷的命令行交互功能,适用于构建简单的 CLI 工具或与用户进行交互。
68.27KB
文件大小:
评论区