私は現在、Onsen UI + Cordova を使用してアプリに取り組んでおり、LokiJS をサーバーレス データベースとして使用しようとしています。LokiJS のドキュメントによると:
何も指定されていない場合、Loki はデフォルトの方法 (Node では fs、ブラウザーでは localStorage、cordova) を試みます。
データベースファイル *.json をファイルシステムに書き込めないということですか。SDカードまたは内部ストレージのどこかに?
私は現在、Onsen UI + Cordova を使用してアプリに取り組んでおり、LokiJS をサーバーレス データベースとして使用しようとしています。LokiJS のドキュメントによると:
何も指定されていない場合、Loki はデフォルトの方法 (Node では fs、ブラウザーでは localStorage、cordova) を試みます。
データベースファイル *.json をファイルシステムに書き込めないということですか。SDカードまたは内部ストレージのどこかに?
save
関数のドキュメントからわかるように、LokiJS を使用すると、使用しているデータベースを JSON ファイルとして永続化できます。
Loki コンストラクターで指定した永続化アダプターに従って、データベースを保存します。何も指定されていない場合、Loki はデフォルトのメソッド (Node の fs、ブラウザーの localStorage、および cordova) を試みます。
これは、既定で localStorage が cordova で使用され、ファイル システムに既に永続化されていることを意味します。
その後、Loki のload()
関数を使用して特定の DB 名をロードできます。
これを明示的に行う必要はないことに注意してください。次のようにして Loki で新しい DB を作成できます。
var db = new loki('db_name.json', {
autosave: true,
autosaveInterval: 60 * 1000, //every 60 seconds
autoload: true
});
autoload
とオプションを指定すればautosave
自分で何も処理する必要がないので、cordovaではlocalStorageを使って自動的にデータを永続化します。
また、別のことをしたい場合、つまりlocalStorageを使用しない場合は、独自の Adapter を作成して、ファイル システムまたはサーバーまたはクラウド ストレージに保存することもできます。もちろん、これにはアダプターを作成する必要があります。Loki の gitHub で例を確認できます (これは jquery AJAX アダプターのサンプルです)。
編集: @Joe Minichino が指摘したように、Loki 用の既製の Cordova FS アダプターがあり、箱から出してすぐに動作するはずです。チェックしてください!
このプラグインを使用して、ファイルシステムへの読み取り/書き込みアクセスを行うことができます。