当我尝试添加更多数据后,lokijs丢失数据库和数据集合

时间:2016-05-11 20:08:25

标签: javascript cordova lokijs

所有

我对Lokijs很新,我想知道如何重新加载已保留的数据库和集合?

假设我构建了一个数据库和集合,然后我坚持它(比如单击一个按钮来触发持久化过程):

    var db = new Loki("mydb");
    var users = db.addCollection('users');
    // we bind this to a button click event
    function saveUser(){
        users.insert({
          name: 'joe'
        });
        users.insert({
          name: 'john'
        });
        users.insert({
          name: 'jack'
        });
        db.saveDatabase();
    }

然后,当我刷新此页面时,如何从持久性加载“mydb”和“users”而不是创建新的(因为它将通过var db = new Loki(“mydb”);再次),是否存在用于检查数据库是否存在的API?

由于

1 个答案:

答案 0 :(得分:2)

这是一个常见问题,默认方式是使用loadHandler,如图所示here。 基本上,您必须传递loadHandler函数,该函数根据现有文件初始化db:

var db = new loki('test', 
      {
        autoload: true,
        autoloadCallback : loadHandler,
        autosave: true, 
        autosaveInterval: 10000
      }); 
var users = null;
function loadHandler() {
    users = db.getCollection('users');
    if (!users) {
        users = db.addCollection('users');
    }
}

希望这有帮助。