如何使用 Evently 保存更新的 CouchDB 文档?

Posted

技术标签:

【中文标题】如何使用 Evently 保存更新的 CouchDB 文档?【英文标题】:How do I save an updated CouchDB doc with Evently? 【发布时间】:2012-03-09 03:22:11 【问题描述】:

我正在关注IBM's tutorial on CouchDB,但在保存已编辑文档时遇到了问题。保存 new 文档可以正常工作,并且看起来我所有现有文档的值(通过 openDoc 函数检索)都是有效的,但新值根本没有采用。

当我跟踪执行代码时,看起来新值在那里:

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

saveDoc 或 Evently 是否有一些我不理解的细微差别?

【问题讨论】:

【参考方案1】:

在您的 success 回调中,您没有记录 更新的 文档,您正在记录第 87 行的 newdoc 对象(减去它通过 saveDoc 函数,显然未定义_id_rev,但没关系)。

success 回调可以有一个参数,即来自服务器的响应。如果你写:

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

您应该在响应中看到一个以2- 开头的新_rev

如果您真的想在更新后查看完整的文档,只需从您的 success 回调中调用 openDoc 以获取更新的版本。


其他细节,当你说的时候

saveDoc返回成功

我认为您的意思是调用了 success 回调,因为 saveDoc 是异步的,无论如何都应该立即返回。

【讨论】:

奇怪的是,我没有修改任何代码就回到了这里,现在它可以工作了。也许这是一个缓存问题——谁知道呢?不过,感谢您提供的重要提示,尤其是异步位。这将在以后为我节省大量时间!

以上是关于如何使用 Evently 保存更新的 CouchDB 文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 evently 将事件处理程序附加到 CouchApp 中的小胡子渲染?

Couchapp && Evently && Mustache:我将如何输出子数组?

关于在 couchapp 和 evently 中使用 mustache partials 的问题

evently 中动态内容的事件监听器

couchapp+evently: _init/data.js 和 $$(this)

Couchapp 目录结构,更新?