缺什么补什么:别把 fs 和 Stream 当成调 API

这门课专攻 Node.js 里的文件系统与流处理,解决的是只会写接口却搞不定底层 I/O 的能力断层。很多转岗或速成学 Node 的人,能把服务跑起来,但一遇到大文件读取、日志分片写入、断点续传或管道转发就立刻露怯。根子在于把 fs 和 Stream 当成了普通 API 来背诵,没理解底层是文件描述符、缓冲区、事件驱动和背压机制。课程版本标的是 7.x,对学习 fs 同步异步方法、Stream 事件机制来说,核心模型到现在依然适用。别拿版本号当借口,先把你欠缺的底层逻辑补上再说。门槛方面,你需要具备 JavaScript 基础语法和 Node.js 基本模块的常识,如果连回调函数和事件监听都搞不清楚,建议先去补原生基础,直接看流会非常吃力。

学习顺序与资料配合练习

建议严格按资料顺序走,但心里要分两步。第一步先把文件系统部分彻底啃完,重点放在随机读写、目录操作、文件信息查看和监视变更。随机读写最容易被跳过,但它是理解文件描述符偏移量的关键,不补上,后面做日志追加、分块存储全会卡壳。第二步再进流,顺序绝对不能乱。读流和写流是基础,但真正的分水岭是缓存区的排空事件。很多人写了半天流,连背压是什么都说不清,当数据写入速度远大于底层消费速度时,直接把内存撑爆。看完这部分,务必自己手写一段模拟高速写入和慢速消费的代码,观察排空事件何时触发,别只盯着视频看。资料里的视频线索只用来对齐知识点和理解主题,真正长本事的是你本地新建个测试目录,把每个案例都跑一遍,改参数看报错,对着报错查文档。

学完能独立做什么及自检问题

学完这块,你应当能独立写出一个带日志轮转的文件写入工具,能在不把大文件全读进内存的前提下,对几个 GB 的文件做分块读取和哈希计算,能利用监视文件接口做一个本地资源热更新的小脚本。检验自己是否真懂,回答几个问题:同步方法和异步方法在事件循环里的差别到底落在哪里;随机读写时如果不手动维护偏移量会发生什么;排空事件触发的前提条件是什么,它解决的是谁的痛点;读写流用管道连接时,如果读写速度不一致,底层是怎么处理的。这些问题答不上来,就回去重看对应片段。别急着学下一门框架课,基础不牢,后面全是空中楼阁。缺什么补什么,别假装什么都会。

课程目录

1-1 [文件系统] 对文件的读写和追加操作 (20:02)
1-2 [文件系统] 随机读写文件 (24:47)
1-3 [文件系统] 创建和读取目录 (10:57)
1-4 [文件系统] 查看文件和目录信息 (11:53)
1-5 [文件系统] 检查文件和目录是否存在 (05:04)
1-6 [文件系统] 修改文件访问时间及修改时间 (06:10)
1-7 [文件系统] 移动(重命名)文件和目录 (08:27)
1-8 [文件系统] 截断文件 (05:14)
1-9 [文件系统] 监视文件和目录 (09:07)
2-1 [流(Stream)] ReadStream (20:46)
2-2 [流(Stream)] WriteStream (22:58)
2-3 [流(Stream)] 监听缓存区的drain事件 (11:26)
2-4 [流(Stream)] 使用ReadStream.pipe方法复制文件 (11:20)