koa2 ctx.body 页面没有显示内容
export const getFunctionByUserId = async (ctx) => {
let token = ctx.request.header.token;
try {
client.get(token, (err, userId) => {
if(!!userId) {
client.get(userId, (err, userInfo) => {
if(!!userInfo) {
console.log("userInfo:", JSON.parse(userInfo).permission)
ctx.body = ({
data: JSON.parse(userInfo).permission
});
} else {
let funcInfoList = getFuncInfoByUserId(userId);
//同步缓存数据。。。。
addUserRedis(userId);
ctx.body = {
data: funcInfoList
};
}
});
} else {
console.log('没有缓存');
ctx.status = 404;
ctx.body = {
error: "token 失效"
}
}
});
} catch (err) {
ctx.status = 404;
ctx.body = {
error: "获取权限失败"
}
}
};
求帮我看一下,我能打印出 console.log(“userInfo:”, JSON.parse(userInfo).permission)这句的信息但是页面没有内容输出
8 回复
try…catch无法捕捉回调中的异常的
你还是仔细看看asyn/await到底怎么用吧
已经解决是redis引用包的问题,
你这种写法是用 express 的方式来写 koa 的异步 还是需要用 yield / async+await
@wssgcg1213 搞清楚了谢谢
@Neil-UWA 好的谢谢
我也遇到这种问题了,只要我使用mongoose查询语句不管用promise还是async/await前端都不能接收到信息,你是怎么解决的
我这个是由于redis包引用的问题,使用的是koa,结果redis引用的是适用于express,结果出现的问题