couchDB pouchDB 同步 - angular-pouchdb - 类型错误

couchDB pouchDB sync - angular-pouchdb - Type Error

我正在尝试在 Angular 应用程序(使用 angular-pouchdb)中让 sync() 在 pouchDB 和本地 couchDB 之间工作。

  this.system =  pouchDB('system');
  var remoteSystem =  pouchDB('http://localhost:5984/system');

  this.system.sync(remoteSystem, {live : true}).on('change', function (change) {
    // yo, something changed!
    console.log('changed');
  }).on('error', function (err) {
    // yo, we got an error!
    console.log('error');
  });

但我不断收到以下错误:

Uncaught TypeError: undefined is not a function (angular.js:4146)

如果我删除 .on 链,错误就会消失(但同步仍然不起作用)

最新版本的 PouchDB 在 PouchDB 对象上有同步方法。

var remote = new PouchDB('http://localhost:5984/system');
var local = new PouchDB('system');

PouchDB.sync(local, remote, { live: true })
  .on('change', function (info) {
    // handle change
  }).on('complete', function (info) {
    // handle complete
  }).on('uptodate', function (info) {
    // handle up-to-date
  }).on('error', function (err) {
    // handle error
  });

如果您使用的是 angular-pouchdb,那么 pouchdb 对象并不是真正的 PouchDB 对象;这是一件特别的事情 angular-pouchdb

幸运的是,syncreplicate API 也可用于数据库本身。所以你可以这样做:

local.sync(remote, { live: true})

这是一回事