Node.js 的 readline 模块
Node.js 的 readline
模块是用于逐行处理输入/输出流的核心模块,
特别适合交互式命令行应用和大文件逐行解析
以下是关键特性和用法:
一、核心功能
逐行处理
通过事件驱动机制监听换行符(
\n
、\r
或\r\n
)触发line
事件支持异步迭代器模式(Node.js 11.7+)实现同步风格代码
接口控制
createInterface()
绑定输入输出流(如process.stdin/stdout
)close()
释放资源并触发close
事件
二、典型应用场景
命令行交互
使用
question()
实现选项菜单示例:用户选择后执行对应操作
文件处理
结合
fs.createReadStream
逐行读取大文件,避免内存溢出通过
crlfDelay: Infinity
兼容不同系统的换行符
三、代码示例
异步迭代器读取输入:
const rl = require('readline').createInterface({ input: process.stdin }); (async () => { for await (const line of rl) { console.log('Received:', line); } })();
四、注意事项
必须显式调用 close() 结束输入监听,否则进程会挂起
浏览器环境无法直接使用,需通过 Node.js 或 Web Worker 实现