我目前正在使用 Onsen UI+Cordova 开发一个应用程序,并尝试使用 LokiJS 作为我的无服务器数据库。根据 LokiJS 的文档:
如果未指定任何内容,Loki 会尝试使用默认方法(Node 中的 fs、浏览器中的 localStorage 和 cordova)。
这是否意味着我不能将数据库文件 *.json 写入文件系统,即。SD卡或内部存储在某处?
我目前正在使用 Onsen UI+Cordova 开发一个应用程序,并尝试使用 LokiJS 作为我的无服务器数据库。根据 LokiJS 的文档:
如果未指定任何内容,Loki 会尝试使用默认方法(Node 中的 fs、浏览器中的 localStorage 和 cordova)。
这是否意味着我不能将数据库文件 *.json 写入文件系统,即。SD卡或内部存储在某处?
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
});
如果您指定autoload
和autosave
选项,您不需要自己处理任何事情,因此数据将使用cordova 上的 localStorage 自动持久化。
此外,如果您想以不同的方式做事,即不使用 localStorage,您可以创建自己的 Adapter 以保存在文件系统甚至服务器或云存储上。这当然需要你编写一个 Adapter,你可以在这里看到 Loki 的 gitHub 中的一个示例(它是一个 jquery AJAX 适配器示例)
编辑:正如@Joe Minichino 所指出的,Loki 有一个现成的 Cordova FS 适配器,应该开箱即用,检查一下!
您可以使用此插件对文件系统进行读/写访问。