koa中可以使用原生node方式获取post数据,也可以使用koa-bodyparser中间件获取post数据。下面就来看看怎么使用。
第一种使用原生node获取post数据
在koa 使用原生node环境中获取post数据
需要封装一个promise对象
exports.getPostData = function(ctx){
// 获取数据 异步
return new Promise(function(resolve,reject){
try{
let str = '';
ctx.req.on('data',function (chunk) {
str += chunk;
})
ctx.req.on('end',function (chunk) {
resolve(str);
})
}catch(err){
reject(err);
}
});
}
模板样式
<form action="/doAdd" method="post">
用户名: <input type="text" name="username" />
密码: <input type="password" name="password" />
<button type="submit">提交</button>
</form>
在koa中获取post表单提交的路由,调用上面封装的那个函数
router.post('/doAdd',async (ctx)=>{
// 获取表单提交的数据
let data = await common.getPostData(ctx);
ctx.body = data;
});
第二种使用koa-bodypaser中间件获取post数据
安装
npm install --save koa-bodyparser
引入中间件
const bodyParser = require('koa-bodyparser');
配置中间件
app.use(bodyParser());
获取数据
ctx.request.body
就可以获取到post来的数据,json格式的
router.post('/doAdd',async (ctx)=>{
// 获取表单提交的数据
ctx.body = ctx.request.body;
});