1

私は PouchDB を使用しており、cloudant サーバーから複製しようとしています。ここで説明されている手法を使用して、cloudant へのリクエストをプロキシする nodejs アプリもあります。

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/myDb404http://localhost/dbになります。何らかの理由で、データベースの名前が削除されました。

なぜこれが起こっているのですか?

4

3 に答える 3

0

PouchDB <-> CouchDB <-> Cloudant を同期することで成功したという人が少なくとも 1 人いると聞きました。PouchDB は、CouchDB と IrisCouch に対して最高のサポートを提供します。Cloudant や Couchbase Sync Gateway などの他のプロバイダーについては、現在取り組んでいます。

于 2014-05-06T18:37:53.097 に答える
0

http://localhost/db_myDbアプリケーションの最後の行を に変更して名前の設定を使用する方法について、ホスト/データベース名の設定を想定するロジックがいくつかありますがapp.use(forward(/\/db\_(.*)/, TARGET_URL));、現在のバージョンの cloudant では PouchDB には他にもいくつかの問題があります。

于 2014-04-18T11:42:10.233 に答える