Javascript Node JS MySQL查询函数不返回结果

Javascript Node JS MySQL查询函数不返回结果,javascript,mysql,node.js,function,Javascript,Mysql,Node.js,Function,我正在运行一个MySQL查询,该查询位于一个运行在节点js上的.js文件中。我的连接设置正常,查询正常,但当我尝试将结果返回到原始调用时,它似乎不起作用 函数sqlQuery(查询){ log(“运行查询”); var conn=连接(); var结果=假; conn.query(查询、函数(错误、行、字段){ 连接端(); 如果(!err){result=rows;}否则{result=err;} }); 返回结果; } var loginResult=sqlQuery(“从“玩家”中选择*

我正在运行一个MySQL查询,该查询位于一个运行在节点js上的.js文件中。我的连接设置正常,查询正常,但当我尝试将结果返回到原始调用时,它似乎不起作用

函数sqlQuery(查询){ log(“运行查询”); var conn=连接(); var结果=假; conn.query(查询、函数(错误、行、字段){ 连接端(); 如果(!err){result=rows;}否则{result=err;} }); 返回结果; } var loginResult=sqlQuery(“从“玩家”中选择*”;
console.log(loginResult)实际上Node.js中的所有内容都是异步的,SQL查询函数肯定是异步的。您正在调用
conn.query(query,callback)
,这意味着将调用查询,然后在将来的某个时间点出现结果后,您的回调函数将被调用,结果将供您使用。因此:

conn.query(query, function runThisEventually(err, rows, fields) {
    if (err) {
      console.error("One or more errors occurred!");
      console.error(err);
      return;
    }
    processResults(rows, fields);
});

调用
conn.query(…)
后,您不会立即得到结果,因此您的代码在同一时间内可以做“其他事情”,并且在某个时候,您的回调将被触发,您可以在那里进行结果处理。

我理解,因此本质上,如果我将console.log(result)放在在函数本身中-它可以访问结果,因为只有在查询完成后才会调用日志事件。当查询仍在运行时,将记录我的初始var loginResult。谢谢您能否提供一个简短的代码修复问题的摘要?
conn.query(query, function(err, rows, fields) {
    if (err) 
        console.log("error ocurred",err);
    res.send({
        "code":400,
        "message":"error ocurred"
    })
});