LokiJS 与科尔多瓦

LokiJS with cordova

我目前正在使用 Onsen UI+Cordova 开发一个应用程序,并尝试使用 LokiJS 作为我的无服务器数据库。根据 LokiJS 的文档:

If nothing is specified, Loki tries default methods (fs in Node, localStorage in browser and cordova).

这是否意味着我无法将数据库文件 *.json 写入文件系统,即。 SDCard 或内部存储设备?

您可以使用 this plugin 来 read/write 访问文件系统。

LokiJS 允许您将正在使用的数据库保存为 JSON 文件,正如您可以从 save function:

的文档中看到的那样

Saves the db, according to the persistence adapter you specified in the Loki constructor. If nothing is specified, Loki tries default methods (fs in Node, localStorage in browser and cordova).

这意味着默认情况下在 cordova 中使用 localStorage,它已经持久化到文件系统中。

然后您可以使用 Loki 的 load() function 加载特定的数据库名称。

请注意,您不需要明确地执行此操作,您可以通过以下操作在 Loki 中创建一个新数据库:

var db = new loki('db_name.json', {
    autosave: true,
    autosaveInterval: 60 * 1000, //every 60 seconds
    autoload: true
});

如果您指定 autoloadautosave 选项,您不需要自己处理任何事情,因此数据将使用 cordova 上的 localStorage 自动保存。

此外,如果您想以不同的方式做事,即不使用 localStorage,您可以创建自己的适配器以保存在文件系统上,甚至服务器或云存储。 这当然需要你写一个Adapter,你可以在Loki的gitHub here (it's a jquery AJAX adapter sample)

中看到一个例子

编辑: 正如@Joe Minichino 指出的那样,有一个 ready-made Cordova FS adapter for Loki,应该开箱即用,检查一下!