Как сохранить обновленный документ 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
является асинхронным и в любом случае должен немедленно вернуться.