2017-03-07 59 views
1

我想连接和同步到两个不同的数据库与PouchDB在我的应用程序和服务器上的CouchDB。我可以连接到一个,但第二个连接无法正常工作。连接到两个不同的数据库与PouchDB

我的代码如下所示:

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://'。找到https://pouchdb.com/api.html#sync –

回答

1

你在这里有一些错误。

首先,您必须将协议包含在远程数据库的URL中,即。你需要http://在你的localhost...前面。

然后,sync调用不会阻止,因此您将在实际复制完成之前调用allDocs。如果稍后再试一次,则会发现该文档将在那里。