惜梦酱 2022-06-24 20:10 采纳率: 66.7%
浏览 33
已结题

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


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

  • 写回答

1条回答 默认 最新

  • 惜梦酱 2022-06-24 20:15
    关注

    解决了应该是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语法没用习惯,还有待加强
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

    报告相同问题?

    问题事件

    • 系统已结题 7月2日
    • 已采纳回答 6月24日
    • 创建了问题 6月24日

    悬赏问题

    • ¥60 关于海信电视聚好看安装应用的问题
    • ¥15 vue引入sdk后的回调问题
    • ¥15 求一个智能家居控制的代码
    • ¥15 ad软件 pcb布线pcb规则约束编辑器where the object matpcb布线pcb规则约束编辑器where the object matchs怎么没有+15v只有no net
    • ¥15 虚拟机vmnet8 nat模式可以ping通主机,主机也能ping通虚拟机,但是vmnet8一直未识别怎么解决,其次诊断结果就是默认网关不可用
    • ¥20 求各位能用我能理解的话回答超级简单的一些问题
    • ¥15 yolov5双目识别输出坐标代码报错
    • ¥15 这个代码有什么语法错误
    • ¥15 给予STM32按键中断与串口通信
    • ¥15 使用QT实现can通信