koa2无法解析前端上传的json数据

我使用postman测试api,后台是使用koa2。但是ctx.request.body无法获取数据

这次postman

clipboard.png
这次后端逻辑:

exports.createAccount=async (ctx,next)=>{
    console.log(ctx);
    let info=ctx.request.body;
    console.log(info);
    try{
        let result= await account.createAccount(info.email,info.tel,info.password);
        console.log(result);
        ctx.body={state:"1",account:result};
    }catch(e){
        //写入日志

        ctx.body={state:"-1"}
    }
}

这次app入口文件

const Koa=require('koa');
const app=new Koa();
const convert = require('koa-convert');
const json = require('koa-json');
const bodyparser = require('koa-bodyparser')();
const koabody = require('koa-body');
const Router=require('./router');
const socket=require('./middlewares/socket');
socket.init(app);//传入app实例
app.use(Router);
app.use(convert(bodyparser));
app.use(convert(json()));
app.use(convert(koabody({})));
app.listen(3000);

目前的问题:ctx.request.body无法获取 json数据
但是我使用ctx.req.on('data',data => console.log(data))能打印出上传来的数据。我认为是json数据解析出现问题,请问我应该怎么配置!

阅读 5.7k
1 个回答

找到答案了,这个坑!填了。是因为body解析在逻辑运行之后,导致没能正确解析。

app.use(Router);
app.use(convert(bodyparser));

改为

app.use(convert(bodyparser));
app.use(Router);

生命曾可贵,要理智的分析问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题