对于GET请求,我们可以直接通过request.query拿到请求参数,但是对于POST请求的处理,koa没有封装获取参数的方法,需要通过解析上下文context中的原生node.js请求对象req,将POST表单数据解析成query string(例如:a=1&b=2&c=3),再将query string 解析成JSON格式(例如:{“a”:”1”, “b”:”2”, “c”:”3”})
主要思想
- 取到req.headers[‘content-type’],值为
application/x-www-form-urlencoded
或application/json
x-www-form-urlencoded
对应的格式为a=1&b=2
, json则是json对象- 通过
监听ctx.req对象的data和end事件
接收data数据 - 按对应格式方式解析成json对象放到request.body
模拟实现
1 | return async (ctx, next) => { |