Node.js 的 readline 模块

admin7个月前 (06-25)it知识606

Node.js 的 readline 模块是用于逐行处理输入/输出流的核心模块,

特别适合交互式命令行应用和大文件逐行解析

以下是关键特性和用法:

一、核心功能

  1. 逐行处理

    • 通过事件驱动机制监听换行符(\n\r 或 \r\n)触发 line 事件

    • 支持异步迭代器模式(Node.js 11.7+)实现同步风格代码

  2. 接口控制

    • createInterface() 绑定输入输出流(如 process.stdin/stdout

    • close() 释放资源并触发 close 事件

二、典型应用场景

  1. 命令行交互

    • 使用 question() 实现选项菜单

    • 示例:用户选择后执行对应操作

  2. 文件处理

    • 结合 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 实现


标签: 分享IT知识

相关文章

关于夏天

在一个炎热的午后,阳光穿过树叶的缝隙,洒在公园的草地上。空气中弥漫着夏日的气息,那是炎热中夹杂着淡淡的花香,还有草地的清新味道。在这个充满活力的季节,夏天以其独特的方式展示着它的魅力。夏天是一个充满色...

拖延症重度患者怎样自救

对于拖延症的重度患者,自救的关键在于以下几点:识别并克服拖延的借口。拖延常常因为我们害怕、不确定、不想不舒服而找到各种借口。我们必须识破这些借口,并对自己说:“如果我拖延,后果将不堪设想。”制定清晰的...

个人学习计划

学习计划是一个帮助你提高学习效率和使用时间的有效工具。以下是一个可能的学习计划:目标设定。 在开始学习之前,明确你的学习目标和目的地,这有助于你制定实际可行的计划。分解任务。 将大...

敏捷开发

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可...

如何学习 javascript

学习JavaScript需要以下步骤:基础语法:学习JavaScript的基础语法,包括变量、数据类型、函数、循环、条件语句等。DOM 操作:学习如何操作 DOM,例如获取和修改元素、添加和删除事件处...

故事分解结构

故事分解结构是一种用于分析、设计和编写故事的方法,它可以将故事分解为不同的层次,从而更好地理解故事的内在逻辑和结构。下面是故事分解结构的详细解释:节拍(beat):是故事的最小单位,包含动作和反应两个...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。