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

发布于 2022-09-05 08:30:11 字数 1224 浏览 44 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

久隐师 2022-09-12 08:30:11

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

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

改为

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文