mirror of
https://github.com/leanote/desktop-app.git
synced 2025-10-14 15:11:24 +00:00
97 lines
2.6 KiB
JavaScript
97 lines
2.6 KiB
JavaScript
var Datastore = require('nedb');
|
|
var path = require('path');
|
|
var Evt = require('evt_main');
|
|
|
|
var db = {};
|
|
|
|
// dbPath是用户的dbPath
|
|
db.init = function (curUser, dbPath, dataBasePath) {
|
|
var me = this;
|
|
var dbNames = [
|
|
'images',
|
|
/*
|
|
'users', 'notebooks', 'notes', 'tags', 'attachs', 'noteHistories', 'g'*/
|
|
];
|
|
for(var i in dbNames) {
|
|
var name = dbNames[i];
|
|
var baseDBPath = dbPath;
|
|
|
|
var dbFilepath = path.join(baseDBPath, name + '.db');
|
|
(function (name) {
|
|
var autoload = true;
|
|
db[name] = new Datastore(
|
|
{filename: dbFilepath, autoload: autoload, onload: function () {
|
|
console.log(name + ' is loaded [main]');
|
|
}});
|
|
})(name);
|
|
}
|
|
|
|
db._inited = true;
|
|
|
|
// 保存起来
|
|
Evt.init(curUser, dbPath, dataBasePath);
|
|
|
|
console.log('db inited [main]');
|
|
};
|
|
|
|
/**
|
|
* 执行
|
|
* @param {[type]} m [description]
|
|
* @param {Function} callback [description]
|
|
* @return {[type]} [description]
|
|
*/
|
|
db.exec = function(m, callback) {
|
|
var me = this;
|
|
// console.log('------------------------');
|
|
console.log('main db called');
|
|
// console.log(m);
|
|
|
|
if (!this._inited) {
|
|
callback({token: m.token, err: new Error(), ret: false});
|
|
return;
|
|
}
|
|
|
|
if (m.params && typeof m.params === 'string') {
|
|
m.params = JSON.parse(m.params);
|
|
}
|
|
|
|
if (m.method == 'find') {
|
|
var params = m.params;
|
|
var query = params.query;
|
|
var sorter = params.sorter;
|
|
if (sorter) {
|
|
db[m.dbname].find(query).sort(sorter).exec(function (err, ret) {
|
|
// 返回结果
|
|
callback({token: m.token, err: err, ret: ret});
|
|
});
|
|
return;
|
|
} else {
|
|
m.params = query;
|
|
}
|
|
}
|
|
else if (m.method == 'update') {
|
|
var params = m.params;
|
|
// console.log('update------------------')
|
|
// console.log(params.options ? '' : '????????????????????????????');
|
|
db[m.dbname].update(params.query, params.sets, params.options, function (err, ret) {
|
|
// 返回结果
|
|
callback({token: m.token, err: err, ret: ret});
|
|
});
|
|
return;
|
|
}
|
|
|
|
// find 没有sorter
|
|
// insert
|
|
db[m.dbname][m.method](m.params, function (err, ret) {
|
|
// console.log('返回结果');
|
|
// console.log(m);
|
|
// console.log(JSON.stringify(m.params));
|
|
// console.log(err);
|
|
// console.log(ret);
|
|
// 返回结果
|
|
callback({token: m.token, err: err, ret: ret});
|
|
});
|
|
};
|
|
|
|
module.exports = db;
|