Jason IELTS 2019-07-04 09:19 采纳率: 0%
浏览 724

node.js代码中,怎么才能把循环从mysql数据库里查询的值赋值给数组?

各位大神,我现在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. 会计' } ] ]

请教大神,怎么才能把四次查询结果收集到数组里呢?

  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-07-04 09:35
    关注

    我曾写过 node.js 封装数据库操作的代码,node.js 数据库操作
    这篇是讲解 Oracle 的,文末有 MySQL 的源码地址,有可以参考看看哈。

    评论

报告相同问题?

悬赏问题

  • ¥15 我想在一个软件里添加一个优惠弹窗,应该怎么写代码
  • ¥15 fluent的在模拟压强时使用希望得到一些建议
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样
  • ¥15 java的GUI的运用
  • ¥15 Web.config连不上数据库
  • ¥15 我想付费需要AKM公司DSP开发资料及相关开发。
  • ¥15 怎么配置广告联盟瀑布流