2017-01-11 13 views
1

Я использую PouchDB 6.1.1 на стороне клиента и IBM Cloudant на стороне сервера. Это экономит на PouchDB без проблем. Когда я реплицирую с помощью myPouch.replicate.to (..), я получаю статус 201, но ответ запретил ошибку с сообщением/причиной. «Свойство` source »должно существовать и быть либо строкой, либо объектом». и статус 500. Каковы могут быть причины получения этой ошибки?Ошибка облачности: «Свойство« source »должно существовать и быть либо строкой, либо объектом».

Это документ я помещаю PouchDB успешно:

{ 
    _id: "Test2017-01-11T13:47:48-05:00", 
    completed: false, 
    created_by: "Joes Moes", 
    created_on: "2017-01-11T13:47:48-05:00", 
    durationInSeconds: 1898, 
    edited: false, 
    guestVisit: false, 
    manualVisit: false 
} 

Это объект ответа после репликации в Cloudant.

{ 
    doc_write_failures: 1, 
    docs_read: 1, 
    docs_written: 0, 
    end_time: Wed Jan 11 2017 13:54:38 GMT-0500 (EST), 
    errors: [{ 
     error: "forbidden", 
     id: "Test2017-01-11T13:47:48-05:00", 
     message: "The `source' property must exist and be either a string or an object.", 
     name: "forbidden", 
     ok: true, 
     reason: "The `source' property must exist and be either a string or an object." 
    }], 
    rev: "1-fdebae00ecfe324c91e85a88fd823442", 
    status: 500, 
    last_seq: 25, 
    ok: true, 
    start_time: Wed Jan 11 2017 13:54:37 GMT-0500 (EST), 
    status: "complete" 
} 

Заранее спасибо!

+0

Как настроена ваша репликация, например, она живая? Отправьте свой код репликации. – RamblinRose

ответ

0

В моих документах JSON для CouchDb указаны свойства. Я замечаю, что их нет в вашем документе. Возможно, вы могли бы попробовать следующее:

{ 
    "_id": "Test2017-01-11T13:47:48-05:00", 
    "completed": false, 
    "created_by": "Joes Moes", 
    "created_on": "2017-01-11T13:47:48-05:00", 
    "durationInSeconds": 1898, 
    "edited": false, 
    "guestVisit": false, 
    "manualVisit": false 
} 

вместо этого?

1

Спасибо всем за ответы! Я нашел проблему в базе данных.

На стороне клиента я использую ниже код для репликации Cloudant:

myPouchDB.put(doc); 
myPouchDB.replicate.to(myCouchDB); 

Проблема была в самой базе данных. Каким-то образом в эту базу данных был добавлен проект дизайна репликации (_design/_replicator), который вызывал проблему. После удаления этого документа репликация с PouchDB на Cloudant работала.