使用 couchDB 复制 pouchDB 文档

replicate pouchDB document with couchDB

我在一个应用中使用过pouchDB,现在想引入couchDB来同步文档到远程服务器。因此我遵循了这个 link http://pouchdb.com/getting-started.html 我使用下面的代码将数据复制到 couchDB

var db2 = new PouchDB('todos');
var remoteCouch = 'http://localhost:5984/_utils/database.html?couchdb_sample';

 db2.changes({
since: 'now',
live: true
}).on('change', showTodos);
sync();
function sync() {
 //alert("sync");
//syncDom.setAttribute('data-sync-state', 'syncing');
//var opts = {live: true};
db2.replicate.to(remoteCouch).on('complete', function () {
console.log("done");
}).on('error', function (err) {
    console.log(err);
});

function addTodo(text) {
var todo = {
_id: $("#eid").val()+$("#version").val(),
title: text,
name: $("#nameid").val(),
version: $("#version").val(),
completed: false
};
db2.put(todo, function callback(err, result) {
  if (!err) {
    console.log('Successfully posted a todo!');
  }
  else{
  console.log(err);
  }
 });}

这里的标题有一个 xml 字符串作为值。但我面临以下错误

SyntaxError: Unexpected token <

    at Object.parse (native)

这条线路 db2.replicate.to(remoteCouch)。我在 couchDb 数据库中手动创建了一个新文档并输入了相同的数据,它没有给出任何错误,但是当我尝试复制时它显示语法错误。谁能告诉我我哪里出错了

http://localhost:5984/_utils/database.html?couchdb_sample

指向 HTML 站点(从浏览器地址栏复制过来,对吧?)。删除中间部分:

http://localhost:5984/couchdb_sample

您似乎没有按照 PouchDb 期望的方式定义远程数据库。您应该使用 "new PouchDb" 调用。您的代码的第二行是:

var remoteCouch = 'http://localhost:5984/_utils/database.html?couchdb_sample';

但我觉得应该是这样的:

var remoteCouch = new PouchDB('http://localhost:5984/couchdb_sample');

从你的代码中我不清楚远程数据库的名称是什么,但它通常不会像 Ingo Radatz 指出的那样以“.html”结尾,所以我假设它是 couchdb_sample 以上。 the PouchDb site.

上有更多关于复制的信息