使用代理进行Cloudant到PouchDB复制

时间:2014-03-21 14:56:13

标签: couchdb cloudant replicate pouchdb

我正在使用PouchDB并尝试从云服务器复制。 我还有一个nodejs应用程序,它使用描述here

的技术代理对cloudant的请求
var request = require('request')

module.exports = function(pattern, host){
  return function(req, res, next){
    if(req.url.match(pattern)){
      var db_path = req.url.match(pattern)[1]
        , db_url = [host, db_path].join('/');
      req.pipe(request[req.method.toLowerCase()](db_url)).pipe(res);
    }else{
      next();
    }
  }
}


app.use(forward(/\/db\/(.*)/, TARGET_URL));

我在我的pouchdb上调用replicate:

db.replicate.from('http://localhost/db/myDb', {continuous: true})

查看网络选项卡,第一个请求成功,但后续请求已成功,但不是调用http://localhost/db/myDb,而是http://localhost/db,因此导致404.由于某种原因,它已丢弃我的数据库的名称。

知道为什么会这样吗?

3 个答案:

答案 0 :(得分:2)

试试Smileupps吧。这是一个免费的couchdb hosting服务,支持最新版本的CouchDB(1.6.0),也与PouchDB兼容。

答案 1 :(得分:0)

有一些假设主机/ dbname设置的逻辑,关于如何通过将应用的最后一行更改为http://localhost/db_myDb来使用app.use(forward(/\/db\_(.*)/, TARGET_URL));名称设置,尽管PouchDB存在其他一些问题目前的版本有cloudant

答案 2 :(得分:0)

我听说至少有一个人说通过同步PouchDB< - >来说他们找到了成功。 CouchDB< - > Cloudant。 PouchDB为CouchDB和IrisCouch提供一流的支持;对于像Cloudant或Couchbase Sync Gateway这样的其他提供商,我们正在努力。