124 lines
3.4 KiB
JavaScript
124 lines
3.4 KiB
JavaScript
let tree = new Map([
|
|
[
|
|
{
|
|
"name": "用户管理",
|
|
"path": "/user",
|
|
"icon": "icon"
|
|
},
|
|
[
|
|
{
|
|
"name": "查询登陆日志",
|
|
"path": "/user/查询登陆日志",
|
|
"icon": "icon"
|
|
},
|
|
{
|
|
"name": "查询观看日志",
|
|
"path": "/user/查询观看日志",
|
|
"icon": "icon"
|
|
},
|
|
]
|
|
],
|
|
[
|
|
{
|
|
"name": "管理员",
|
|
"path": "/admin",
|
|
"icon": "icon"
|
|
},
|
|
[
|
|
{
|
|
"name": "查询登陆日志",
|
|
"path": "/admin/查询登陆日志",
|
|
"icon": "icon"
|
|
},
|
|
{
|
|
"name": "查询权限",
|
|
"path": "/admin/查询权限",
|
|
"icon": "icon"
|
|
},
|
|
]
|
|
],
|
|
[
|
|
{
|
|
"name": "查询权限",
|
|
"path": "/admin/查询权限",
|
|
"icon": "icon"
|
|
},
|
|
[
|
|
{
|
|
"name": "修改",
|
|
"path": "/admin/查询权限/修改",
|
|
"icon": "icon"
|
|
},
|
|
{
|
|
"name": "插入",
|
|
"path": "/admin/查询权限/插入",
|
|
"icon": "icon"
|
|
},
|
|
]
|
|
]
|
|
]);
|
|
|
|
let coll = "auth_menu"
|
|
const MongoClient = require('mongodb').MongoClient;
|
|
let dburl = "mongodb://192.168.1.249:27017,192.168.1.249:27018,192.168.1.249:27019/video?replicaSet=mongoRepl&maxPoolSize=200&connectTimeout=30";
|
|
|
|
MongoClient.connect(dburl, {useUnifiedTopology: true, useNewUrlParser: true}, (err, db) => {
|
|
if (err) {
|
|
console.log('数据库连接失败!');
|
|
return;
|
|
}
|
|
;
|
|
|
|
let videoDB = db.db("video");
|
|
let ps = Array.from(tree.keys()).map(key => {
|
|
return new Promise(function (resolve, rejcet) {
|
|
videoDB.collection(coll).findOneAndUpdate(
|
|
{path: key.path},
|
|
{$set: key},
|
|
{
|
|
upsert: true,
|
|
new: true
|
|
},
|
|
(err, result) => {
|
|
if (err) {
|
|
rejcet('数据更新失败' + err)
|
|
return
|
|
}
|
|
;
|
|
resolve({id: result.value._id, array: tree.get(key)})
|
|
});
|
|
})
|
|
})
|
|
|
|
Promise.all(ps).then(pairs => {
|
|
let pss = pairs.map(pair => {
|
|
let ps = pair.array.map(e => {
|
|
return new Promise(function (resolve, rejcet) {
|
|
videoDB.collection(coll).updateOne({path: e.path},
|
|
{$set: {parent: pair.id, ...e}},
|
|
{upsert: true},
|
|
(err, result) => {
|
|
if (err) {
|
|
rejcet('数据插入失败!' + err)
|
|
return
|
|
}
|
|
;
|
|
resolve()
|
|
});
|
|
})
|
|
})
|
|
return ps
|
|
})
|
|
pArry = pss.reduce((a, c) => {
|
|
return a.concat(a, c)
|
|
}, [])
|
|
return Promise.all(pArry)
|
|
}).then(() => {
|
|
console.log('完成!');
|
|
db.close()
|
|
}).catch(err => {
|
|
console.log(err);
|
|
db.close()
|
|
})
|
|
})
|