Как сохранить обновленный документ CouchDB с помощью Evently? - PullRequest
1 голос
/ 09 марта 2012

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

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

enter image description here

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

enter image description here

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

1 Ответ

0 голосов
/ 10 марта 2012

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

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

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

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

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


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

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

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

...