2017-06-16 24 views
1

私はCouchAppを作成しており、リモートデータベースとPouchDBオブジェクトの作成について質問しています。PouchDB相対リモートデータベース(CouchDB/Cloudant)

  • CouchAppはHTPSから入手可能である://subdomain.website.com/
  • CouchDBのインスタンスがHTPSである:
  • //username.cloudant.com/database私に書き換え規則を使用しますデータベース
  • 私はレプリケーションを使用していない
  • をusername.cloudant.com/database/_design/client/_rewriteするsubdomain.website.comから仮想ホスト、唯一の直接接続があり

私は現在使用して新しいPouchDBオブジェクトを作成します。

するvarデシベル=新しいPouchDB( 'HTPS://username.cloudant.com/database');

しかし、私はむしろとしてそれをインスタンス化します:

するvarデシベル=新しいPouchDB( '/データベース');

又は

VARデシベル=新しいPouchDB( 'データベース')。

私の推測では、PouchDBはこれをリモートデータベースではなくローカルデータベースとみなしています。私の考えは正しいのですか?どうすれば希望の結果が得られますか? URLのホスト名を取り除きたいのですが、私はすべてを移植可能にして他のサーバーに複製したいからです。

答えて

2

あなたはバーチャルホストを定義しているので、あなたは次の回避策のmabye使用することができます。データセットがかなり大きいと私は、ローカルデータベースや複製を使用していない

var url = new URL(window.location.href); 
var host = url.host; 

var db = new PouchDB(host+"/database"); 
+0

箱から出てきて良かった!これは私の問題を解決しました。私は、仮想ホストの再ルーティングのための特別な書き換えルールを追加しました: '{"/database/* "、" "、 " to ":" ../../../database/* " }' ' – bsmulders

0

私は現在使用して新しいPouchDBオブジェクトを作成します。

するvarデシベル=新しいPouchDB( 'HTPS://username.cloudant.com/databaseを');

しかし、私はむしろとしてそれをインスタンス化します:

するvarデシベル=新しいPouchDB( 'データベース');

これは個人的な好みではなく、リモートデータベース、ローカルデータベース、またはその両方が必要な場合があります。おそらくあなたはsyncリモートとする必要があるかもしれません、そして、

const localDB=new PouchDB('localDatabase') 

:あなたは、ローカルデータベースを必要とするかもしれない、また

const remoteDB=new PouchDB('https://username.cloudant.com/database') 

基本的には、開発者として、あなたは、リモート・データベースを必要とするかもしれませんローカルデータベース。実際にはsyncingのPouchDBが実際にに輝いています。例えば、同期は次のように行われることがあります

localDB.sync(remoteDB,{live:true,retry:true}).on('complete',()=>{ 
    console.log('sync done') 
}).on('change',change=>{ 
    console.log('Something changed -> ',change) 
}).on('paused',info=>{ 
    console.log('Sync paused -> ',info) 
}).on('active',info=>{ 
    console.log('Sync is active again -> ',info) 
}).on('error',err=>{ 
    throw new Error(err) 
}) 

することはできread on詳細は。

+0

を。リモートデータセットは読み取り専用で、リモートインスタンスのみを使用してPouchDBをインスタンス化します。その後、私はalldocsを使ってデータベースに問い合わせます。 – bsmulders