koa post提交数据

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;
});
原文地址:https://www.cnblogs.com/jiaoshou/p/13447617.html