2017-03-07 5 views
1

私は、サーバー上の私のAppとCouchDBのPouchDBで2つの異なるデータベースに接続して同期しようとしています。私は1つに接続できますが、2番目の接続は正常に動作しません。PouchDBで2つの異なるデータベースに接続

this._DB = new PouchDB('userdata'); 
 
let options = { 
 
     live: true, 
 
     retry: true, 
 
     continuous: true 
 
     }; 
 

 
this._syncHandler = this._DB.sync(remoteDB, options); 
 

 
this._DB2 = new PouchDB('beer'); 
 
this._DB2.sync('localhost:5984/beer', options); 
 
this._DB2.allDocs({}) 
 
     .then((doc)=> { 
 
      console.log('****** TEST: doc = ' + JSON.stringify(doc)); 
 
     }) 
 
     .catch((err)=>{ 
 
      console.log('****** TEST: err = ' + JSON.stringify(err)); 
 
     });

私はこのコードを実行すると、コンソールログは、「ユーザデータ」のデータベースではなく「ビール」データベースの内容を示しています

私のコードは次のようになります。これは奇妙で意図されたものではありません。

+0

エラーが発生しますか? –

+0

奇妙なことはありません。新しいPouchDBと同期はうまくいくように見え、コンソールログにはTEST:doc出力が表示されますが、docの内容は 'userdata'データベースの内容であり、非常に奇妙な 'beer'データベースではありません。 –

+0

あなたの同期の中で、 'http://'を追加してみてください。 Found https://pouchdb.com/api.html#sync –

答えて

1

ここではいくつか間違っていることがあります。

まず、リモートDBのURLにプロトコルを含める必要があります。 localhost...の前にhttp://が必要です。

また、syncコールはブロックされないため、実際のレプリケーションが完了する前にallDocsと呼ぶことになります。後でもう一度やり直すと、ドキュメントがそこにあることがわかります。

関連する問題