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 довольно простой и документация на сайте.

http://pouchdb.com/


можно использовать 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 файл для деталей реализации.