使用 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.
上有更多关于复制的信息
我在一个应用中使用过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.
上有更多关于复制的信息