在作后台管理界面的时候,几乎少不了的一个结构就是树形结构,用来作菜单导航;javascript
那么,最但愿的就是树结构的全部数据都是读取的数据库,而不是直接代码当中写死,那咱们就一步一步来看:html
一,建表java
字段一般包括:id,text,url,pidnode
id | text | url | pid |
1 | a | 0 | |
2 | b | test.html | 1 |
二,使用nodeJS链接数据库mysql
const mysql = require('mysql'); //注入MySQL模块 const connection = mysql.createConnection({ //链接数据库的信息 host:'', //数据库的地址,如:localhost user:'', //登陆名 默认root password:'', //登陆密码 database:'' //数据库名字 });
connection.connect(); //建立链接
三,读取数据sql
connection.query('SELECT*FROM 表名',function(err,rows){}); //rows为读过来的数据
//举例读取的数据为list的数据
var list = [{"id":1,"user":"a","pid":0},{"id":2,"user":"b","pid":1},{"id":3,"user":"c","pid":0},{"id":4,"user":"d","pid":3}]; var rJson = [];
//将全部的pid的数据加到对应的id数据对象里面去,须要添加一个属性children for(var i=0;i<list.length;i++){ var arr = []; for(var j=0;j<list.length;j++){ if(list[i].id == list[j].pid){ list[i].children = arr; arr.push(list[j]); } } } for(var i=0;i<list.length;i++){ if(list[i].pid == 0){ rJson.push(list[i]); } } console.info(rJson);