如何从 Angularjs 中的多个 PouchDB 同步 CouchDB?
How to sync CouchDB from multiple PouchDB in Angularjs?
我正在开发 angular 应用程序。如何在不丢失任何信息的情况下使多个 PouchDB 同步到单个 CouchDB?
如果你的意思是创建多个 PouchDB 实例,那么你必须为每个 PouchDB 实例创建它们各自的监听器,指向你想要的远程数据库(有问题的 CouchDB)。
听众的这个例子对我有用:
var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
live: true,
retry: true
}).on('change', function (info) {
// handle change
}).on('paused', function (err) {
// replication paused (e.g. replication up to date, user went offline)
}).on('active', function () {
// replicate resumed (e.g. new changes replicating, user went back online)
}).on('denied', function (err) {
// a document failed to replicate (e.g. due to permissions)
}).on('complete', function (info) {
// handle complete
}).on('error', function (err) {
// handle error
});
您需要通过过滤器进行复制
- 在 CouchDB 中为每个客户端数据库创建过滤器;
- 通过过滤器从 CouchDB 开始 replication 到客户端(查看名为 filter 的复制选项)
- 开始将所有文档从客户端复制到每个客户端数据库的 CouchDB。
您可以找到所需的一切here(示例 3、4)
我正在开发 angular 应用程序。如何在不丢失任何信息的情况下使多个 PouchDB 同步到单个 CouchDB?
如果你的意思是创建多个 PouchDB 实例,那么你必须为每个 PouchDB 实例创建它们各自的监听器,指向你想要的远程数据库(有问题的 CouchDB)。
听众的这个例子对我有用:
var sync = PouchDB.sync('mydb', 'http://localhost:5984/mydb', {
live: true,
retry: true
}).on('change', function (info) {
// handle change
}).on('paused', function (err) {
// replication paused (e.g. replication up to date, user went offline)
}).on('active', function () {
// replicate resumed (e.g. new changes replicating, user went back online)
}).on('denied', function (err) {
// a document failed to replicate (e.g. due to permissions)
}).on('complete', function (info) {
// handle complete
}).on('error', function (err) {
// handle error
});
您需要通过过滤器进行复制
- 在 CouchDB 中为每个客户端数据库创建过滤器;
- 通过过滤器从 CouchDB 开始 replication 到客户端(查看名为 filter 的复制选项)
- 开始将所有文档从客户端复制到每个客户端数据库的 CouchDB。
您可以找到所需的一切here(示例 3、4)