Trong hàm executeQuery của mình, bạn đã sử dụng các lệnh gọi lại để chờ kết quả. Theo cách tương tự bằng cách triển khai chúng trong hàm getResult, bạn có thể làm cho nó đợi kết quả sau khi thực hiện truy vấn. Một cái gì đó như thế này.
var mysql = require('mysql');
var pool = mysql.createPool({
connectionLimit : 100,
host : 'host',
user : 'user',
password : 'password',
database : 'database',
debug : false
});
function executeQuery(query, callback) {
pool.getConnection(function (err, connection) {
if (err) {
return callback(err, null);
}
else if (connection) {
connection.query(query, function (err, rows, fields) {
connection.release();
if (err) {
return callback(err, null);
}
return callback(null, rows);
})
}
else {
return callback(true, "No Connection");
}
});
}
function getResult(query,callback) {
executeQuery(query, function (err, rows) {
if (!err) {
callback(null,rows);
}
else {
callback(true,err);
}
});
}
function getServers() {
getResult("select * from table",function(err,rows){
if(!err){
return rows;
}else{
console.log(err);
}
});
}
exports.getList = getList;