我正在关注IBM 关于 CouchDB 的教程,但在保存已编辑文档时遇到了问题。保存新文档可以正常工作,看起来我所有现有文档的值(通过openDoc函数检索)都是有效的,但新值根本没有采用。
当我跟踪执行代码时,看起来新值在那里:

但是,saveDoc 成功返回后(奇怪!),文档没有更新。如果我记录更新的文档,则记录的对象没有_id或_rev值,尽管您可以清楚地看到它们在保存时存在(见第一个屏幕截图)。

是否有一些我不理解的细微差别saveDoc,或者Evently ?
在您的success回调中,您没有记录更新的文档,而是newdoc从第 87 行记录对象(减去它通过saveDoc函数,显然未定义_id和_rev,但没关系)。
success回调可以有一个参数,即来自服务器的响应。如果你写:
success: function(data) {
console.log(data);
}
您应该在响应中看到一个_rev以2-.
如果您真的想在更新后查看完整的文档,只需openDoc从您的success回调中调用以获取更新的版本。
其他细节,当你说
saveDoc成功返回
我认为您的意思success是调用了回调,因为saveDoc它是异步的,并且无论如何都应该立即返回。