我在一个应用程序中使用了pouchDB,现在我想引入couchDB来将文档同步到远程服务器。因此我按照这个链接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数据库中手动创建了一个新文档,并输入了相同的数据,但没有出现任何错误,但是当我尝试复制它时显示语法错误。任何人都可以提示我出错的地方
答案 0 :(得分:1)
http://localhost:5984/_utils/database.html?couchdb_sample
指向HTML网站(从浏览器地址栏复制,对吧?)。删除中间部分:
http://localhost:5984/couchdb_sample
答案 1 :(得分:0)
看起来您没有像PouchDb期望的那样定义远程数据库。你应该使用&#34;新的PouchDb&#34;呼叫。代码的第二行是:
var remoteCouch = 'http://localhost:5984/_utils/database.html?couchdb_sample';
但我认为应该是这样的:
var remoteCouch = new PouchDB('http://localhost:5984/couchdb_sample');
我不清楚您的代码中远程数据库的名称是什么,但它通常不会以&#34; .html&#34;正如Ingo Radatz所指出的,所以我假设它是上面的 couchdb_sample 。有关the PouchDb site上的复制的更多信息。