pouchdb не синхронизирует все документы с couchdb - PullRequest
0 голосов
/ 13 декабря 2018

Я использую pouchdb на веб-сайте и couchdb на стороне сервера.Я использую приведенный ниже код в pouchdb для синхронизации с couchdb:

db.replicate.to(remoteDb ...

. По некоторым причинам один из документов не синхронизируется с couchdb, но все остальные синхронизируются успешно.Я вижу, что отсутствующий документ существует на pouchdb, но я не могу оштрафовать его на coudhdb.Я несколько раз пытался синхронизироваться, но ни один из них не работал.Проблема возникает только на одном из документов.Как я могу проверить ошибку при синхронизации этого документа?Где находится журнал неудачной синхронизации?

1 Ответ

0 голосов
/ 13 декабря 2018

Если я правильно понял функциональность, при репликации с сервера, фильтр на стороне сервера должен пропустить ваши данные.При репликации на сервер фильтр на стороне клиента должен разрешать передачу ваших данных.

В вашем случае вам нужно проверить, что данные действительно могут проходитьваш клиентский фильтр.

Допустим, у меня есть такой фильтр ...

{
  "_id": "_design/post_processing",
  "_rev": "1-47235d8ded76c0ec3c3c49e5aae71f6f",
  "filters": {
    "by_request": "function(doc, req) { doc.data && doc.data.type && doc.data.type == 'Request' }"
  }
}

Мои записи, очевидно, пройдут, потому что у них есть тип данных 'request', верно?

Чтобы проверить это, я проверяю свое предположение непосредственно в коде перед запуском репликатора.

const doc = {
  "_id": "Person_1_0000000000000339",
  "_rev": "2-86e5ce7d8b5b58dacd2fad68bcc02658",
  "data": {
    "pk": 339,
    "type": "request",
    "handler": "PersonUpdate"
    "mobile": "099-555-7685",
    "distributor": true,
    "email": "bill.gates@amazon.com",
  }
};

console.log('=========== HEY! Look here. Here I am! ================');
console.log(doc.data && doc.data.type && doc.data.type == 'Request');

db.replicate.to(remoteDb ...

О, чушь.Это ложь.Интересно почему.

...