如何从CouchDB复制到PouchDB?

Sam*_*ton 7 couchdb pouchdb

我已经建立了一个本地CouchDB数据库,我想将它复制到PouchDB数据库,在localhost上运行的网页中使用JavaScript.

使用下面的代码我得到这个错误:

原产地http://localhost不被访问控制允许来源允许的.

随着http://从远程删除,我没有得到一个错误,但没有文档显示为复制.

从Chrome DevTools查看IndexedDB数据库,我可以看到数据库已经创建(但似乎没有文档).

在Chrome 29.0.1535.2金丝雀中运行.

我可以在本地执行此操作,还是需要设置远程CouchDB数据库并启用CORS(根据CouchDB文档)?

var REMOTE = 'http://127.0.0.1:5984/foo';
var LOCAL = 'idb://foo';

Pouch(LOCAL, function(error, pouchdb){
  if (error) {
    console.log("Error: ", error);
  } else {
    var db = pouchdb;
    Pouch.replicate(REMOTE, LOCAL, function (error, changes) {
      if (error) {
        console.log('Error: ', error);
      }
      else {
        console.log('Changes: ', changes);
        db.allDocs({include_docs: true}, function(error, docs) {
          console.log('Rows: ', docs.rows);
        });
    }});
  }
});
Run Code Online (Sandbox Code Playgroud)

jch*_*hes 10

您可以在本地执行此操作,但必须启用CORS.

当您删除的"http://"从远程URL,袋是要复制您的数据库到一个新的IndexedDB的支持Pouchdb名为"本地主机"(或实际上是"_pouch_localhost"或类似的东西 - 它增加了一个前缀).

除非您从CouchDB本身(在相同的主机和端口上)提供此页面,否则您将需要启用CORS以使复制到CouchDB工作.

  • @SamDutton你在`cors> origin'配置部分下面有什么东西吗?如果是这样,请确保该列表包含`http:// localhost`.您可能还需要进行健全性检查并确保运行Couch 1.3.x,因为1.2及更低版本没有内置CORS支持. (2认同)
  • BINGO:添加`cors> origin`就可以了.谢谢你的坚韧! (2认同)