1

全部:

我对 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 可以检查如果数据库存在?

谢谢

4

1 回答 1

2

This is a common question, the default way is to use the loadHandler, like illustrated here. Basically you have to pass a loadHandler function that initializes the db based on an existing file:

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

Hope this helps.

于 2016-05-12T19:08:05.740 回答