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 实现
