Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript mysql内部函数_Javascript_Node.js - Fatal编程技术网

javascript mysql内部函数

javascript mysql内部函数,javascript,node.js,Javascript,Node.js,当我运行这个函数时,当它返回时,我得到null,因为我在mysql查询中有返回,我如何解决这个问题 function CheckStorage(Host, Slots, SSLocation) { connection.query("SELECT * FROM `machines` WHERE `shost` LIKE '" + Host + "' AND `location` LIKE '" + SSLocation + "' AND `slotsa` >= " + Slots

当我运行这个函数时,当它返回时,我得到null,因为我在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"]); 
            }
        }  
    });
}

该函数是异步的。。回调就是答案。可能重复的