2016-10-25 10 views
1

私のブラウザでLokiJSをテストしています。 jsonファイルとして作成したdbを同じフォルダに保存したい。しかし、何も起こりません。これは私がオンラインで見つけたコードで、私はテストしています:jsonファイルとしてlokiJSで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); 
}); 

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

答えて

2

うん、それはあなたがそれを使用する前に、データベースをロードするために持っているか、それが空のものに消去されます

少しトリッキーです。コレクションをロードしたり、コレクションが存在しない場合は作成したり、変更を保存したりできる小さなスクリプトです。

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(); 
}); 
+0

私がしたいことができないようです。私はjsonファイルをロードしてファイルシステムにjavascriptを使って保存し、オフラインでのみ使用するアプリを作成したかったのです。私が理解したことで、javascriptはそれを許さないので、nodejを使用しました。私は正しい? –

+0

うん。ファイルシステムは、ブラウザからかなり手が届きません。 サーバー通信なしでオフラインアプリケーションを作成する場合は、locastorageを調べる必要があります。 私はlokiJSがかなり新しくそれを実装すると思います。 [詳細についてはここをクリックしてください] – Ezkin

+0

dbをロードすると、 'db.loadDatabase({}、function { ){ するvar _collection = db.getCollection(colNameに);! 場合(_collection){ はconsole.log( "sが終了していないコレクション%作成しています...。"、colNameに); _collection = db.addCollection( 'users'); } コールバック(_collection); }); } ' ステートメントloadDatabase({})とはどういう意味ですか?空の小括弧が何を意味するのか分かりません!!そこにDBを空にしていますか?またはコレクションは空ですか?助けてください。 @エズキン –

関連する問題