无法用lokiJS将db保存为json文件



我正在浏览器中测试LokiJS。我想保存在同一文件夹中创建的json文件的db。但是什么也没发生。这是我在网上找到的代码,我正在测试:

var db = new loki('test.json');
var db2 = new loki('test.json');
var users = db.addCollection('users');
users.insert({
    name: 'joe'
});
users.insert({
    name: 'john'
});
users.insert({
    name: 'jack'
});
console.log(users.data);
db.saveDatabase();
db2.loadDatabase({}, function () {
    var users2 = db2.getCollection('users')
    console.log(users2.data);
});

我错过了什么?谢谢。

是的,这有点棘手

你必须在使用数据库之前加载它,否则它会用空数据库擦除。下面是一个小脚本,允许你加载一个集合或者创建一个集合(如果它不存在)+保存更改

var loki = require('lokijs'),
    db = new loki('test.json');
function loadCollection(colName, callback) {
    db.loadDatabase({}, function () {
        var _collection = db.getCollection(colName);
        if (!_collection) {
            console.log("Collection %s does not exit. Creating ...", colName);
            _collection = db.addCollection('users');
        }
        callback(_collection);
    });
}
loadCollection('users', function (users) {
    //show the users
    console.log(users.data);
    var newUser = {
        name: 'user_' + (new Date()).getTime()
    };
    //add one
    users.insert(newUser);
    console.log("Added a new user => ", newUser);
    //save 
    db.saveDatabase();
});

最新更新