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

查看:300
本文介绍了javascript - koa2无法解析前端上传的json数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我使用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);

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

这篇关于javascript - koa2无法解析前端上传的json数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆