2015-08-07 4 views
4

В настоящее время я работаю над приложением, используя Onsen UI + Cordova и пытаюсь использовать LokiJS в качестве моей базы данных без сервера. Согласно документам LokiJS'S:LokiJS with cordova

Если не указано иное, Локи пытается методы по умолчанию (фс в узле, LocalStorage в браузере и Кордову).

Означает ли это, что я не могу записать файл базы данных * .json в файловую систему, т.е. SDCard или внутреннее хранилище?

+1

В дополнение к ответу @sosdoc я скажу, что здесь есть готовый адаптер файловой системы cordova: https://github.com/cosmith/loki-cordova-fs-adapter –

+0

это довольно круто! Я очень благодарен! :) Я сейчас пытаюсь кордова-файл-апи. –

+0

проблема решена! спасибо за все ваши ответы! :), но я понятия не имею, как использовать адаптер, поэтому я пытаюсь создать конкретный оператор для работы с файлом кордовы api + json file + часть функции lokiJS. теперь я могу управлять созданием, чтением, обновлением и удалением с помощью файла lokiJS + api! Спасибо вам всем ! : D –

ответ

6

LokiJS позволяет сохраняться в базе данных, которую вы используете в качестве файла JSON, как вы можете видеть из документации в save function:

сохраняет дб, в соответствии с настойчивостью адаптера, указанный в конструктор Локи. Если ничего не указано, Loki пытается использовать методы (fs в узле, localStorage в браузере и кордове).

Это означает, что по умолчанию localStorage используется в кордове, которая уже будет сохранена в файловой системе.

Затем вы можете использовать Loki's load() function для загрузки определенного имени базы данных.

Обратите внимание, что вы не нужно сделать это в явном виде, вы можете просто создать новую БД в Локи, выполнив:

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

Если указать autoload и autosave варианты вам не нужно обрабатывайте что-нибудь самостоятельно, поэтому данные будут сохраняться автоматически, используя localStorage на кордове.

Кроме того, если вы хотите сделать что-то по-другому, то есть не использовать LocalStorage, вы можете создать свой собственный адаптер для сохранения в файловой системе или даже на сервере или облачного хранения. Для этого необходимо написать адаптер, конечно, вы можете увидеть пример в GitHub Локи here (it's a jquery AJAX adapter sample)

EDIT: Как @Joe Minichino указал, есть ready-made Cordova FS adapter for Loki, должен работать прямо из коробки, проверить его вне!

+0

ничего себе! Все, что мне нужно, - это сохранить все данные в независимом json-файле. создавать/читать/загружать/изменять, используя LokiJS, и Да, в моем приложении, мне нужно будет перенести его в другое место, например, облачное хранилище или частный сервер. –

+0

@JerellFox вы можете сделать это с помощью 'save()', хотя вам все еще нужен адаптер для сохранения js-файла db в другом месте, если вы посмотрите на образец jQuery ajax, вы можете увидеть, что его очень просто реализовать самостоятельно. – Sosdoc

+0

Действительно! Я очень благодарен за вашу помощь. :) Я изучу его. ! :) –

2

Вы можете использовать this plugin для доступа к файловой системе для чтения/записи.

+0

Спасибо! Я попробую! :) –

+0

Добро пожаловать. Кстати, вы всегда можете присоединиться к #phonegap на Freenode. Там есть полезные люди. –