body-parser原理及实现方式
原理简介
由于表单 POST 请求可能会携带大量的数据,所以在进行请求提交的时候会分为多次提交,具体分为多少次进行提交不一定,取决于数据量的大小
在 Node 中,对于处理这种不确定的数据,使用事件的形式处理
这里可以监听 req 对象的 data 事件,然后通过对应的回调处理函数中的参数 chunk 拿到每一次接收到的数据data,当数据接收完毕之后,会自动触发 req 对象的 end 事件,然后就可以在 end 事件中使用接收到的表单 POST 请求体
代码原理
记得先引入querystring
模块
querystring
用作分割请求体内容并转化为对象格式
因为有时候会用到文件上传,所以这里要判断数据请求头的content-type
,如果是multipart/form-data
,则让formidable
中间件(涉及到文件提交的,可以参考这篇博客)去处理,否则自己处理
1 | app.use((req, res, next) => { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Dong!
评论