各位大神,我现在node服务器端需要一个功能:从mysql数据库中循环查询出4个值,并且赋值给数组,现在代码如下:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
port: '3306',
database: 'db_user'
});
connection.connect();//连接数据库
var data= new Array();
var x;
for(var i=0;i<4;i++){ //四次循环
function sum (m,n){
x = Math.floor(m + Math.random()*(n - m));
}
sum(1,15327); //算出一个1-15327之间的随机数
var sql = 'SELECT words,meaning FROM wordlist where number=' +x;
//查询X变量中随机数对应的单词
connection.query(sql,function (err, results) {
if(err){
console.log('[SELECT ERROR] - ',err.message);
return;
}
console.log('--------------------------SELECT----------------------------');
data[i] = results; // 将4次循环查询出的单词放入数组
console.log(data);
console.log('------------------------------------------------------------\n\n');
});
}
但是因为node.js异步的关系,运行结果数组为空,结果如下:
PS C:\Users\Mac\AppData\Roaming\npm> node data
--------------------------SELECT----------------------------
[ ,
[ RowDataPacket { words: 'decibel', meaning: 'n. 分贝' } ] ]
--------------------------SELECT----------------------------
[ ,
[ RowDataPacket { words: 'medic', meaning: 'n. 医学工作者,医科学生' } ] ]
--------------------------SELECT----------------------------
[ ,
[ RowDataPacket { words: 'marquee', meaning: 'n. 大天幕,华盖' } ] ]
--------------------------SELECT----------------------------
[ ,
[ RowDataPacket { words: 'accountant', meaning: 'n. 会计' } ] ]
请教大神,怎么才能把四次查询结果收集到数组里呢?