PouchDB ile CouchDB Senkronizasyonu

Selamlar. Bu yazıda PouchDB ile CouchDB Senkronizasyonu hakkında ufak bir bilgi verdim. Bir önceki yazıda PouchDB hakkında giriş yazısı yazmıştım. Bu yazıda uzak sunucuyla nasıl replike edileceğini göreceğiz. Esasında çok basit bir işlem ufak bir ipucu vereceğim.

PouchDB ile CouchDB Senkronizasyonu

 

PouchDB ile CouchDB Senkronizasyonu İçin Hosting

Öncelikle bize lazım olan şey bir sunucu ya da bu görevi gören “ücretsiz” bir hosting. Tam da buna dair araştırma yaparken Cloudnode’a denk geldim. Zaten bu tarz işlemlere dair merakınız var ise kayıt olma aşamasını anlatmama gerek yok.

Uygulama Oluşturma

Sadece kayıt olduktan sonra basit olarak profil bilgilerinizi düzenli bir şekilde doldurun. Ardından önce kendimize bir uygulama oluşturmalıyız. Bu adrese girelim.

Veri Tabanı Oluşturma

Hemen ardından da database sekmesine girip bir adet database oluşturmalıyız. Bu işlemler için size ekran görüntüsü vermiyorum. Ancak database adını seçerken problem yaşayabilirsiniz. Çünkü herkesçe kullanılan bir yapı. Neyse siz kendi belirlediğiniz isimle bir db oluşturun.

Nasıl Senkronize Ederim

Bu işlem aslında çok basit. Önceki yazdığımız kodlardan bir örnek verelim:

const PouchDB = require('pouchdb')['default'];

const db = new PouchDB('articles');

const btn = document.querySelector(".addArticle");

btn.addEventListener('click', () => {
    const ArticleModel = {
        _id: 'pouchdb-makalesi',
        title: 'PouchDB Çok İyi Sen de Gelsene',
        content: 'Bu yazıda size PouchDB hakkında bilgi sunacağım',
        category: 'JavaScript',
        author: 'Ali GOREN'
    }

    db.put(ArticleModel).then(resp => {
        console.log(resp)
    }).catch(err => {

    })

})

Bu önceki kodumuzdu. Ekleme olduktan sonra değişiklik algılanarak senkronize işleminin uzak sunucuya yapılması için kod şöyle olacak:

btn.addEventListener('click', () => {
    const ArticleModel = {
        _id: 'pouchdb-makalesi-3',
        title: 'PouchDB Çok İyi Sen de Gelsene',
        content: 'Bu yazıda size PouchDB hakkında bilgi sunacağım',
        category: 'JavaScript',
        author: 'Ali GOREN'
    }

    db.put(ArticleModel).then(resp => {
        if(resp.ok) {
            db.replicate.to('https://couchdb.cloudno.de/SIZIN_DB_ADINIZ');
        }
    }).catch(err => {

    })

})

Burada önemli kısım SIZIN_DB_ADINIZ olan bölüm. Veri tabanı adını ne verdiyseniz bunu oraya yazacaksınız. Ardından bu verilerin eklenip eklenmediğini futon üzerinde görebilirsiniz. Bu normalde self-hosted bir yapıda da kurulabilen fauxton ile yine mümkün olabiliyor. Örneğin benimyazilarim adında bir database oluşturdunuz diyelim. Bu database’e ulaşmak için şu linke gitmeniz gerekiyor:

https://couchdb.cloudno.de/_utils/database.html?benimyazilarim

Tabi buna şu adresten de erişip diğer bilgileri görebilirsiniz:

https://cloudno.de/database?dbname=benimyazilarim

Paylaştığım ikinci linkte ise API Key gibi bilgilere ve internal link bilgilerine erişebilirsiniz. Unutmadan futon üzerinden security kısmında members bölümünü tüm üyeler olarak belirtmezseniz sadece session’ı aktif olan kişi yani siz kullanabilirsiniz. Eğer direkt CouchDB server’a bağlantı sağlamak isterseniz de yapı şöyle olur:

const db = new PouchDB('https://couchdb.cloudno.de/SIZIN_DB_ADINIZ');

db.allDocs({
    include_docs: true,
    descending: true
}).then(doc => {
    console.log(doc.rows)
}).catch(err => {

})

Anlatmak istediğim bu kadardı. Okuduğunuz için teşekkür ederim.