3

ブラウザで 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);
});

私は何が欠けていますか? ありがとう。

4

1 に答える 1

4

ええ、それは少しトリッキーです

使用する前にデータベースをロードする必要があります。そうしないと、空のデータベースで消去されます。コレクションをロードするか、コレクションが存在しない場合はコレクションを作成し、変更を保存できる小さなスクリプトを次に示します。

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();
});
于 2016-10-25T18:20:26.770 に答える