4

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

如果未指定任何内容,Loki 会尝试使用默认方法(Node 中的 fs、浏览器中的 localStorage 和 cordova)。

这是否意味着我不能将数据库文件 *.json 写入文件系统,即。SD卡或内部存储在某处?

4

2 回答 2

6

LokiJS 允许您将正在使用的数据库作为 JSON 文件持久化,正如您从save函数的文档中看到的那样:

根据您在 Loki 构造函数中指定的持久性适配器保存数据库。如果未指定任何内容,Loki 会尝试使用默认方法(Node 中的 fs、浏览器中的 localStorage 和 cordova)。

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

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

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

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

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

此外,如果您想以不同的方式做事,即不使用 localStorage,您可以创建自己的 Adapter 以保存在文件系统甚至服务器或云存储上。这当然需要你编写一个 Adapter,你可以在这里看到 Loki 的 gitHub 中的一个示例(它是一个 jquery AJAX 适配器示例)

编辑:正如@Joe Minichino 所指出的,Loki 有一个现成的 Cordova FS 适配器,应该开箱即用,检查一下!

于 2015-08-07T10:10:48.180 回答
2

您可以使用此插件对文件系统进行读/写访问。

于 2015-08-07T10:00:34.513 回答