node.js+Mysql实现无限菜单分类
var son = []; //定义存储变量
//
function treeMenu(data,id=0,lev=0) {
// data.forEach(function(val) { //使用forEach遍历数组
for(var val of data) { //使用for.of遍历,值
// console.log(val);
if(val['pid'] == id){ //判断父级id=和当前id
val['lev'] = lev; //标识值,几级菜单
son.push(val); //如果pid=id,保存到son数组中
my(data,val['id'],lev+1); //如果是下级菜单,回调继续
}
}
return son;
}
//链接数据库,获取数据
conn.query('SELECT id,pid from abc', function(err,result) {
if (err) throw err;
var arr = treeMenu(result,0,0);
// console.log(arr);
//循环输出最终无限极菜单
for(var value of arr){
console.log('--'.repeat(value['lev']) + value['id']);
res.write('--'.repeat(value['lev']) + value['id'] + '\n');
res.end();
}
})