首页 > 开发 > JS > 正文

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

2017-09-05 07:26:49  来源:网友分享

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

这次postman


这次后端逻辑:

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数据解析出现问题,请问我应该怎么配置!

解决方案

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

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

改为

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

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