在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ koa無法獲取接口內(nèi)容

koa無法獲取接口內(nèi)容

.query可以獲取接口可以直接console出來,ctx.body無法得到console出來的內(nèi)容

router.all('/publ/tongji',async(ctx,next)=>{
    //ctx.body = ctx;
    await db.query("SELECT * FROM `class`;",
        (err,data)=>{
            if(err){
                console.log(err);
                ctx.body = err;
            }
            else{
                console.log(data);
                ctx.body = data;
            }
        });
    next();
});

上端代碼中ctx.body無法獲取數(shù)據(jù) 但是console.log能夠獲取數(shù)據(jù)。

router.all('/publ/tongji',async(ctx,next)=>{
    //ctx.body = ctx;
    ctx.body = await db.query("SELECT * FROM `class`;",
        (err,data)=>{
            if(err){
                //console.log(err);
                return err;
            }
            else{
                //console.log(data);
                return data;
            }
        });
    next();
});

上邊方法依然不行,真難受!??!希望大神指教

回答
編輯回答
孤毒
  1. 將回調(diào)包裝成Promise

你的代碼

db.query("SELECT * FROM `class`;",
        (err,data)=>{
            if(err){
                //console.log(err);
                return err;
            }
            else{
                //console.log(data);
                return data;
            }
        });

改為

function getData() {
    return new Promise((resolve,reject)=>{
        db.query("SELECT * FROM `class`;",(err,data)=>err?reject(err):resolve(data))
    });
}

調(diào)用

router.all('/publ/tongji',async(ctx,next)=>{
    ctx.body = await getData();
});
2017年6月19日 10:54
編輯回答
朕略傻

return next();

2018年2月22日 08:46
編輯回答
安于心

建議題主深入了解下Promise,async/await。
還有,你的next最好這樣寫 await next()。養(yǎng)成習(xí)慣比較好。
給你一個非常規(guī)寫法:

router.all('/publ/tongji',async(ctx,next)=>{
    //ctx.body = ctx;
    db.query("SELECT * FROM `class`;", (err,data)=>{
        if(err){
            console.log(err);
            ctx.body = err;
        }
        else{
            console.log(data);
            ctx.body = data;
        }
        next();
    });
});
2017年6月23日 16:38
編輯回答
空痕

用了async還要寫callback?

2017年12月16日 06:58