2015-06-12 3 views
0

Я использовал pouchDB в одном приложении, и теперь я хочу представить couchDB для синхронизации документа с удаленным сервером. Поэтому я следовал этой ссылке http://pouchdb.com/getting-started.html я использовал ниже код, чтобы воспроизвести данные в CouchDBreplicate pouchDB document with 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 Я вручную создал новый документ в базе данных couchDb и ввел те же данные, что и ошибки, но при попытке репликации он показывает синтаксическую ошибку. Может кто-нибудь пожалуйста, намекает мне, где я пошло не так

ответ

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

Очки на HTML-сайт (копировался из адресной строки браузера, верно?). Снять среднюю часть:

http://localhost:5984/couchdb_sample 
+0

Я удалил database.html, но теперь я получаю еще одну ошибку. NetworkError: 405 Method Not Allowed, но я включил раздел cors в файле local.ini. – sugar

+0

Это еще один вопрос, который вы должны задать в отдельной ветке. Если мой ответ помог вам, пожалуйста, соблюдайте правила SO и отмечайте их как решаемые. –

+0

спасибо @ llabball за быструю помощь – sugar

0

Похоже, что вы не определили удаленную базу данных так, как ожидает PouchDb. Вы должны использовать вызов «новый PouchDb». Вторая строка кода является:

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

, но я думаю, что это должно быть так:

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

Я не ясно из вашего кода, что имя удаленной базы данных, но это было бы обычно не заканчивается на «.html», как указал Инго Радац, поэтому я предположил, что это couchdb_sample выше. Дополнительную информацию о репликации можно получить по адресу the PouchDb site.

Смежные вопросы