关于node搭建Web服务器的基础知识,包括请求、响应、REST服务、静态文件服务、以及表单、文件提交等。为后续做基础。
一、HTTP服务器的基础知识
1.node如何呈现请求
node服务器是长期运行的进程,在他的整个生命周期里,会处理很多请求。
|
|
2.设置响应头和状态码
|
|
二、构建RESTful Web服务
REST服务四个谓词,覆盖一个操作任务
- POST 添加
- GET 获取
- DELETE 删除
- PUT 修改
POST请求创建资源
- req.method() 查询谓词(请求类型
- req.setEncoding(‘utf8’) 设置编码
|
|
GET请求获取资源
在请求为get时讲items写回即可
- Buffer.byteLength获取字节长度
|
|
DELETE请求删除资源
- url模块用来url解析
- url.parse
|
|
三、提供静态文件服务
- 创建简单的静态服务器(HTML,CSS,JS
- pipe()优化数据传输
- 通过状态码处理用户和文件系统错误
1.创建静态文件服务器
- __dirname 文件所在路径
- fs.ReadStream 高层流式硬盘访问
- stream.pipe() 优化数据传输
- fs.stat() 调取文件信息,优先错误处理
写文件,可以将读写stream进行链接,req就是一个readStream
|
|
整体代码如下:
|
|
四表单接收
- 处理表单提交
- formidable 处理上传文件
- 实时计算上传进度
1.处理表单域
表单提交请求所带Content-Type有两种
- application/x-www-form-urlencoded 默认
- multipart/form-data 含有文件或二进制数据
使用querystring模块解析请求
|
|
2. formidable处理文件上传
formidable为社区模块,实现以下过程:
1.通过请求头判断是否为文件上传
|
|
2.通过formidable获取文件和fields
|
|
3.输出上传进度
|
|