couchdbdevise视图,更新doc创build领域

创build/更新文档时是否可以dynamic更新或更改字段? 例如在devise视图中…. 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"; 

改变了一些新的价值或哈希值。 我的总体目标是build立一个带有node和couchdb的用户注册/login系统,但没有find很好的例子。

validate_doc_update函数不能有任何副作用,在存储之前不能更改文档。 它只有阻止更新或让它通过的权力。 这很重要,因为函数不仅在用户请求更新时调用,而且在从一个CouchDB实例向另一个CouchDB实例复制更改时也会调用该函数。 所以这个函数可以多次调用一个文件。

但是,CouchDB现在支持文档更新处理程序,可以修改文档甚至从头开始构build文档。 这些可用于将非JSONinput数据转换为可用文档。 你可以在CouchDB Wiki中find一些文档。

在build立自己的用户注册/login系统之前,我build议你查看一下内置的CouchDB安全特性(如果你还没有 – 这里有一些信息的话)。 他们可能不够(例如,如果你需要电子邮件validation或类似的东西),但也许你可以build立在他们身上。