zhongdeming428/MyMemorandum

最近计划(Node Stream)——2018.02.14

Closed this issue · 1 comments

继续学习Node知识,查漏补缺。
重点:

  • Node流
  • 网络应用构建
  • 代码测试
  • 部署应用

笔记

Node Stream

Node流分为以下四种:

  • Readable 可读流
  • Writable 可写流
  • Duplex 可读可写流
  • Transform 操作被写入数据,然后读出结果

Node流对象常用事件:

  • data——有数据可读时触发
  • end——没有更多数据可读时触发
  • error——发生错误时触发
  • finish——所有数据已被写入系统底层时触发

重要方法:

fs模块的方法:

  • fs.createReadStream()
  • fs.createWriteStream()

前者用于创建可写流,后者用于创建可读流。

两种流都有许多api可用:

  • on: 实现监听事件
  • setEncoding: 设置编码形式
  • pipe: 数据流入下一环节
  • pause: 暂停流的传输
  • resume: 恢复被暂停的流,使其继续传输数据

另外,可写流api:

  • write: 写入数据到可写流
  • end: 结束数据写入,标记文件末尾

许多Node的API都实现了流式操作,或者说许多Node模块中的对象都是可读流或者可写流。

比如:zlib压缩方法或者解压缩方法都会返回一个可读可写流,http request对象是可读流,http response对象是可写流。