当您创建/更新文档时,是否可以动态更新沙发或更改字段?例如在设计 View 中...... validate_doc_update:
function(newDoc, oldDoc, userCtx) {
}
在该函数中我可以抛出如下错误:
if(!newDoc.user_email && !newDoc.user_name && !newDoc.user_password){
throw({forbidden : 'all fields required'});
}
我的问题是如何重新分配字段?我试过这个:
newDoc.user_password ="changed";
更改为一些新值或散列值。我的总体目标是用node和couchdb构建一个用户注册/登录系统,但还没有找到很好的例子。
最佳答案
validate_doc_update
函数不能有任何副作用,并且不能在存储之前更改文档。它仅有权阻止更新或允许更新通过。这很重要,因为该函数不仅在用户请求更新时调用,而且在将更改从一个 CouchDB 实例复制到另一个实例时也会调用。因此,对于一个文档,该函数可以被多次调用。
但是,CouchDB 现在支持文档更新处理程序,可以修改文档甚至从头开始构建文档。这些可用于将非 JSON 输入数据转换为可用文档。您可以在CouchDB Wiki中找到一些文档.
在构建自己的用户注册/登录系统之前,我建议您研究一下内置的 CouchDB 安全功能(如果您还没有 - 一些信息 here )。它们可能对您来说还不够(例如,如果您需要电子邮件验证或类似的东西),但也许您可以在它们的基础上进行构建。
关于couchdb 设计 View ,更新文档创建字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3772549/