CouchDB as Cordova/база данных Phonegap
цель
я хочу построить кросс-платформенное мобильное приложение с cordova
/phonegap
, которые требуют базы данных (на стороне клиента). Моя целевая платформа в основном Android
и iOS
. Я выбрал couchbase-lite
как мое хранилище.
но я не смог найти хорошую документацию для couchbase-lite
на phonegap
. Только я нашел несколько!--22-->API-интерфейс REST и приложение todo-lite на github и Play Store.
я не могу понять, если у меня нет реализации на стороне сервера, как я могу получить URL-адресом на который я могу отправить POST/GET/PUT / DELETE запрос.
может ли кто-нибудь предложить мне способ, которым я могу установка, подключение и запуск операции CRUD на couchbase-lite
база данных локально в Android
и iOS
используя cordova
/phonegap
.
почему Couchbase-lite (не важно для все)
для тех, кто предложит мне выбрать другой БД, я просто делюсь своими выводами...
От cordova 5.0 документация по хранению есть несколько вариантов
- LocalSorage: ограничение 5 Мб недостаточно для приложения.
- технологию WebSQL: я боюсь за будущее этого, так как w3c отказался от своего планирования.
- IndexDB: в настоящее время недостаточное развитие и недоступна для Android и iOS.
-
Параметры На Основе Плагинов: мотивируя оценку NoSQL. Я пробовал
couchbase-lite
. Который имеет поддержку плагинов для платформы Android и iOS.
6 ответов
Я тоже искал это, и я думаю, что наконец-то нашел что-то. Оказывается, вам нужно использовать библиотеку coax для связи с Couchbase Lite db. Плагин Couchbase Lite предоставляет только один Methode getURL, который возвращает локальный внутренний URL для Couchbase Lite. Затем вы должны использовать coax для создания объекта БД и выполнения запросов к нему.
в основном это выглядит как доступ к Couchbaselite все через запросы REST, используя внутренне сформированный URL. Но это больно. поэтому вам нужно использовать коаксиал. С coax кажется, что остальные ops выставляются как функции на объектах..put, del и т. д. полная ссылка на API указана здесь, это хорошая деталь:
вот полная спецификация остальных операций для Couchbase Lite на мобильном телефоне-ваш CRUD ops
вот коаксиал с простыми инструкциями о том, как работают остальные запросы в контексте CouchDB
Я нашел очень хорошую статью об этом здесь - это говорит о настройке и всех операциях.
Couchase Lite в Кордове через коаксиальный
надеюсь, это поможет вам...
альтернативным предложением может быть PouchDB и CouchDB.
вы можете синхронизировать CouchDB прямо в PouchDB, и он достаточно умен, чтобы использовать любое хранилище, доступное на устройстве ie Localstorage, IDB, WebSQL.
Если вы не хотите полной репликации, вы можете создать промежуточное ПО для управления тем, что реплицируется в PouchDB из CouchDB (вы можете указать, какие документы из какой базы данных реплицируются)
api довольно простой и документация на сайте.
можно использовать PhoneGap Cordova SQLite Плагин поддержка iOS, а также Android
нет синтаксических различий в кодировании только разница
db = window.openDatabase("DBNAME", "1.0", "Description", 200000); // WebSQL
db = window.sqlitePlugin.openDatabase("DBNAME", "1.0", "Description", 200000); // SQLite Plugin
db.transaction(function(tx){
tx.executeSql("CREATE TABLE demo(id INTEGER,name TEXT)");
});
хранение неограничено в новой версии Android/iOS устройств
код, который вы ищете, находится в приложении todo-lite phonegap в функции setupConfig. вам понадобятся модули.js, zepto.минута.js и zepto.прикосновение.JS файлы из приложения todolite-phonegap.
//check if couchbase lite plugin is installed
if (!window.cblite) { return alert( 'Couchbase Lite not installed' ) }
//get your local url from the plugin
cblite.getURL( function(err, url) {
console.log( "getURL: " + JSON.stringify( [ err, url ] ) )
if (err) { return alert( JSON.stringfiy( err ) ) }
var xmlHttp = new XMLHttpRequest()
xmlHttp.open( 'GET', url, false )
xmlHttp.send( null )
window.server = coax( url );
var db = coax( [ url, appDbName ] );
setupDb( db, function(err, info) {
if (err) { return alert( JSON.stringify( err ) ) }
// now your db connection is setup you do CRUD operations by
//GET
db.get( "myDocumentID", function (error, doc) {
if( error ) {
if( error.status == 404 ) {
//INSERT
var myDocument = { "key" : "value" };
db.put( "myDocumentID", myDocument, function( error, ok ) {
if (error) { return alert( JSON.stringify( error ) }
//success
} );
} else { return alert(JSON.stringify( error) ) }
} else {
//UPDATE
doc.my_key = "value";
//DELETE
doc._deleted = true;
db.put("myDocumentID", doc, function(error, ok) {
if (error) { return alert( JSON.stringify( error ) }
//success
} );
}
} );
} );
} );
function setupDb(db, cb) {
db.get( function(err, res, body) {
db.put( function(err, res, body) {
db.get( cb )
} )
} )
}
Я понимаю, что это немного поздно, но вы можете найти хорошее видео на сайте Couchbase (вам придется передать свою электронную почту и т. д., Но это довольно безболезненно). @LorinBeer проходит настройку локального хранилища данных в приложении phonegap примерно за 15 минут (начинается почти точно в 15:00).
использование PhoneGap и Couchbase Lite для создания приложений с интенсивным использованием данных
есть демо РЕПО, другого тоже
по ссылке приложение todo-lite в вашем вопросе он показывает вам, как использовать базу данных couch-DB.
Они предоставили ссылку на .js файл, который содержит информацию о реализации (how-to) couch-db lite.
Я думаю, ты пропустил связь. Вы можете посмотреть .js файл для деталей реализации.