使用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) }