使用nodejs实现一个简单的发布系统。
本文并没有从零到一构建一个完整的发布系统,仅是抛砖引玉的一个demo版本
引入HTTP模块
编写一个简单的server
1 | const http = require('http') |
编写一个简单的request
1 | const http = require('http') |
node.js 的流
流主要可以分成两个部分
可读的流 readable
'close'
事件- 当流或其底层资源(比如文件描述符)被关闭时触发
'close'
事件。 该事件表明不会再触发其他事件,也不会再发生操作。 2.'data'
事件 - 当流将数据块传送给消费者后触发。
- 对于一个流来说,接收某个文件流时是逐步的读取这个文件的数据出来的,根据流的定义,我们不关心这个文件每次读取了多少出来,所以
data
可能会被一次或者多次的调用
- 当流或其底层资源(比如文件描述符)被关闭时触发
'end'
事件'end'
事件只有在数据被完全消费掉后才会触发。
可写的流 writeable
- write() 写入数据到流,并在数据被完全处理之后调用
callback
。 如果发生错误,则callback
可能被调用也可能不被调用。 为了可靠地检测错误,可以为'error'
事件添加监听器。callback
会在触发'error'
之前被异步地调用。
- write() 写入数据到流,并在数据被完全处理之后调用
发送文件到服务
1 | const fs = require('fs') |
服务端接收到文件之后写入指定文件
1 | const http = require('http') |
扩展
- 将server 改装成一个服务系统,用于接收和写入文件即是一个完整的发布服务。
- 当前只写到传输一个指定文件,未扩展写入多个文件/文件夹
to be continued…
以上。