Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

koa中ctx.body写在connection.query中无法返回数据到前端,及function(err, result)中result无法返回到function外

$
0
0

123.png

各位大神们,我是Nodejs小白,最近在写一个koa的login,用的是MySQL数据库。今天遇到了一个完全不明白的问题,如上图,这是loginRouter, 我在if逻辑判断之前新建了一个变量var resultOuter, 其实这个resultOuter只是想把await userdbconnection.query(“SELECT password FROM user WHERE username=?”, [username], function(err, result)这里面返回的result带出function之外的,因为在await userdbconnection.query(“SELECT password FROM user WHERE username=?”, [username], function(err, result){…}之中,我给ctx.body亦或是ctx.message赋值完全没有任何作用,所以我想把这个result带出来,在外面做判定,然后再赋值给ctx.body和ctx.message,可是不管尝试了什么方法,这个result只要一离开function之外就变成了undefined,我测试了一下,因为异步的原因,在这一整个loginRouter执行的过程中,在遇到await userdbconnection.query(“SELECT password FROM user WHERE username=?”, [username], function(err, result)这一行的时候,并不会等它执行完毕,会先执行最下面的console.log(resultOuter)而此时,resultOuter=getPassword并没有执行,所以外面的resultOuter是undefined,但是虽然我知道是这样,我查了好多办法让userdbconnection.query先执行,然后再console.log就是不行,各位大神有没有什么办法,可以让我把function里面的result传到外面去呢?(话有点多,只是想给各位大神解释清楚。。。。)


Viewing all articles
Browse latest Browse all 14821

Trending Articles