Koa数据返回出现问题

Koa数据返回出现问题

首先通过使用redis获取数据,然后将json数据通过koa-json返回,但是出现了一些问题。
使用Apifox测试

代码

// getData.js
exports.getNavMenu = async (ctx, next) => {
    let key = ctx.req.headers.fapp + ':nav:menu'
    redis.get(key).then((data) => {
        console.log(data)
        // console.log(utill.getReturnData(0, '', data))
        ctx.body = utill.getReturnData(0, '', data)
    })
}

// router/index.js
const router = require('koa-router')()
const { getNavMenu } = require('../controller/getData')

router.get('/getNavMenu', getNavMenu)
module.exports = router
--------------------------------------
// util.getRetrunData
util.getReturnData = (code, message='', data=[]) => {
    if(!data) {
        data = []
    }

    return {
        code: code,
        message, message,
        data: data
    }
}
运行结果

img


从这里看出应该不是获取数据出现问题,问题应该在koa上但是现在不知道怎么回事。

我首先想到是不是koa-json出问题了,创建了一个新的路由”/json“

img


输出结果:
apifox:

img


console:

img


都是没问题的。
现在我就不知道哪里出问题了,希望各位帮忙解决一下!

解决了应该是promise出现的问题,我用await改了一下就好了

exports.getNavMenu = async (ctx, next) => {
    let key = ctx.req.headers.fapp + ':nav:menu'
    const data = await redis.get(key)
    ctx.body = utill.getReturnData(0, '', data)
}
```javascript
看了一下之前写的代码,好难受啊!async...await语法没用习惯,还有待加强