1

我正在使用 PouchDB 并尝试从 cloudant 服务器进行复制。我还有一个 nodejs 应用程序,它使用此处描述的技术代理对 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 上调用复制,如下所示:

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

在网络选项卡中查看第一个请求成功,但是发出后续请求,但不是调用http://localhost/db/myDb它们http://localhost/db,因此会导致 404。由于某种原因,它已经删除了我的数据库的名称。

知道为什么会这样吗?

4

3 回答 3

2

试试Smileupps。它是一个免费的couchdb 托管服务,支持最新版本的 CouchDB(1.6.0),同时兼容 PouchDB。

于 2014-05-06T16:15:08.337 回答
0

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

于 2014-05-06T18:37:53.097 回答
0

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

于 2014-04-18T11:42:10.233 回答