javascript - 当我在整理我的 cordova 应用程序并重新启动它后尝试添加更多数据时,lokijs 丢失了集合中的数据库和数据

标签 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?

谢谢

最佳答案

这是一个常见的问题,默认的方式是使用loadHandler,如图here 。 基本上,您必须传递一个 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');
    }
}

希望这有帮助。

关于javascript - 当我在整理我的 cordova 应用程序并重新启动它后尝试添加更多数据时,lokijs 丢失了集合中的数据库和数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37172346/

相关文章:

javascript - 设置和测试 UI 路由器

android - 如何使用Phonegap控制[Android]权限?

javascript - 与远程数据库通信的 PhoneGap 应用程序

javascript - LokiJS 与标准 Javascript 对象访问

javascript - 从 Html View 更新触发更新到动态 View ,将其保存到 LocalStorage loki js

javascript - 按编号索引查找

javascript - 当使用 extern 并针对 JavaScript 时,如何强制 Haxe 编译器使用 require 语句?

javascript - navigator.onLine 并不总是有效

javascript - 通过使用 getElementsClassName、Javascript、DOM 的 ReplaceChild 访问 oldChild

javascript - iOS 应用商店中的 Cordova 和 Google Maps Javascript 问题