Javascript node mysql connection.query()返回未定义的

Javascript node mysql connection.query()返回未定义的,javascript,node.js,return,undefined,node-mysql,Javascript,Node.js,Return,Undefined,Node Mysql,我使用的是一个内置的节点ws-server。 该服务器必须向数据库发送查询。我用的就是这个 当用户连接到服务器时,应检查数据库中是否仍存在客户端 下面是一段有趣的代码: console.log("client-liste ist leer"); var query = "SELECT name FROM spieler WHERE name='"+id+"' AND passwort='"+passwort+"'"; var result = queryToDatabase(query); co

我使用的是一个内置的节点ws-server。 该服务器必须向数据库发送查询。我用的就是这个

当用户连接到服务器时,应检查数据库中是否仍存在客户端

下面是一段有趣的代码:

console.log("client-liste ist leer");
var query = "SELECT name FROM spieler WHERE name='"+id+"' AND passwort='"+passwort+"'";
var result = queryToDatabase(query);
console.log(getTime() + "DB-Result Abfrage: " + result);
以及执行查询的代码:

var mysql = require('mysql');
var mysqlConnection = mysql.createConnection({
    host: dbHost,
    user: dbUser,
    password: dbPassword,
});

function queryToDatabase(anfrage) {
    mysqlConnection.connect();

mysqlConnection.query("USE " + db, function(err, rows, fields) {
    if (err) throw err;
});

mysqlConnection.query(anfrage, function(err, rows, fields) {
        if (err) throw err;
        console.log("rows as String - " + JSON.stringify(rows));
        return rows;

    });

    mysqlConnection.end();
}
控制台中的日志包括:

客户列表列表级别
2012年8月3日-15:29:0-数据库结果Abfrage:未定义
行作为字符串-[{“name”:“lukas”}]



有人知道为什么函数返回未定义的吗?
我还试图通过一个简单的设置来等待数据库连接完成,但没有任何改变

您不能从异步回调返回值,就像
query
使用的回调一样。您需要重写queryToDatabase,以便在查询成功时,它将回调作为第二个参数,并使用
行调用它。然后,您的主代码需要如下所示:

queryToDatabase(query, function(result) {
     console.log(getTime() + "DB-Result Abfrage: " + result);
   });
实际上,所有依赖于查询结果的代码都需要进入该回调

实际上,如果查询成功,您希望回调函数接受两个参数:错误状态结果,错误状态为
null