利用nodejs讀取數據庫數據生成樹結構的json數據

在作後臺管理界面的時候,幾乎少不了的一個結構就是樹形結構,用來作菜單導航;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爲讀過來的數據

 

四,把讀過來的數據轉成樹結構的json數據
 
//舉例讀取的數據爲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);

 

本身是這麼作的,有問題或者不足的地方,但願各位大牛指正!
相關文章
相關標籤/搜索