Как сохранить обновленный документ CouchDB с помощью Evently?

Я следую руководству IBM по CouchDB и столкнулся с проблемой сохранения отредактированных документов. Сохранение нового документа работает нормально, и похоже, что все значения моего существующего документа (получены через openDoc функция) действительны, но новые значения просто не принимают.

Когда я прослеживаю исполняемый код, похоже, что есть новые значения:

Однако после saveDoc возвращается успешно (странно!), документ не обновляется. Если я регистрирую обновленный документ, зарегистрированный объект не имеет _id или же _rev значения, хотя вы можете ясно видеть, что они присутствовали при сохранении (см. первый скриншот).

Есть ли какой-то нюанс saveDoc или, может быть, в конце концов, что я не понимаю?

1 ответ

Решение

В вашем success обратный вызов, вы не регистрируете обновленный документ, вы регистрируете newdoc объект из линии 87 (минус он прошел через saveDoc функция, которая явно не определена _id а также _rev, но это нормально).

success обратный вызов может иметь аргумент, который является ответом от сервера. Если вы напишите:

success: function(data) {
    console.log(data);
}

Вы должны увидеть в ответе новый _rev начиная с 2-,

Если вы действительно хотите увидеть полный документ после обновления, просто позвоните openDoc от твоего success Обратный звонок, чтобы получить обновленную версию.


Другая деталь, когда вы говорите

saveDoc возвращается успешно

Я думаю, что вы имели в виду, что success обратный вызов называется, потому что saveDoc является асинхронным и в любом случае должен немедленно вернуться.

Другие вопросы по тегам