javascript mysql inside function



当我运行这个函数时,当我返回时,我得到空,因为我在 mysql 查询中有返回,我该如何解决这个问题?

function CheckStorage(Host, Slots, SSLocation) {
    connection.query("SELECT * FROM `machines` WHERE `shost` LIKE '" + Host + "' AND `location` LIKE '" + SSLocation + "' AND `slotsa` >= " + Slots + "", function(err, rows, fields) {
        if(rows[0]) {
            console.log(rows[0]["ip"]);
            return rows[0]["ip"];
        } else {
            return false;
        }   
    });
}

connection.query 是一个异步函数,因此 CheckStorage 在 connection.query 完成之前返回。您需要将处理查询结果的回调函数传递给 CheckStorage,然后在查询完成后调用该函数。

function CheckStorage(Host, Slots, SSLocation, callback) {
    connection.query("SELECT * FROM `machines` WHERE `shost` LIKE '" + Host + "' AND `location` LIKE '" + SSLocation + "' AND `slotsa` >= " + Slots + "", function(err, rows, fields) {
        if(rows[0]) {
            console.log(rows[0]["ip"]);
            if (typeof callback == "function") {
               callback(rows[0]["ip"]); 
            }
        }  
    });
}

相关内容

最新更新