当我在重新启动cordova应用程序后尝试添加更多数据时,lokijs会丢失数据库和收集中的数据

lokijs loses db and data in collection when i try to add more data after colesing my cordova app an relunching it

本文关键字:lokijs 数据库 数据 集中 多数据 cordova 重新启动 应用程序 添加      更新时间:2023-09-26

全部:

我对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"answers"users",而不是创建新的(因为它将通过var db=new Loki("mydb");再次),是否有API来检查数据库是否存在?

感谢

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

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');
    }
}

希望这能有所帮助。