首先通过使用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
}
}
我首先想到是不是koa-json出问题了,创建了一个新的路由”/json“
解决了应该是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语法没用习惯,还有待加强