koa2 ctx.body 页面没有显示内容
发布于 8 年前 作者 Yhaojing 7462 次浏览 来自 问答
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,结果出现的问题

回到顶部