使用node操作数据库做顺序操作很麻烦,为了保证执行顺序需要使用promise。
可以直接封装,也可以使用封装好的,比如node-mysql-promise
操作文档见https://www.npmjs.com/package/node-mysql-promise
npm install node-mysql-promise 安装之后就可以直接使用
var Mysql = require('node-mysql-promise'); var mysql = Mysql.createConnection({ host : 'localhost', user : 'root', password : '123456', database :'duanzu', tablePrefix:'dz_' }); //直接执行select 查询; mysql.table('admin').select().then(function (data) { row(data) }).catch(function (e) { console.log(e); });
//函数内部嵌套查询 function row(data){ for (var i = 0; i < data.length; i++) { if(data[i].userid==1){ //////////////////loop1//////////////////////// mysql.table('link').select().then(function (data) { console.log(data) //////////////loop2//////////////////////
//使用query方法执行任意sql语句,灵活性高 mysql.query('SELECT * FROM `dz_menu` order by id desc', '').then(function (data) { for (var i = 0; i < data.length; i++) { console.log(data[i].name) } }) /////////////loop2/////////////////////////// }).catch(function (e) { console.log(e); }); //////////////////loop1////////////////////////////////// } console.log(data[i].username) } console.log(data[0].username) }