javascript mysql内部函数
当我运行这个函数时,当它返回时,我得到null,因为我在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
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"]);
}
}
});
}
该函数是异步的。。回调就是答案。可能重复的