couchdb 设计 View ,更新文档创建字段

标签 couchdb node.js registration

当您创建/更新文档时,是否可以动态更新沙发或更改字段?例如在设计 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/

相关文章:

html - 使用 html5 和 css 构建注册表时出现以下错误。出现以下错误

javascript - 注册检查电子邮件是否存在而不检查数据库

python - CouchDB 和 Python : how to use "_show" and "_list" functions?

couchdb - 如何在 Cloudant 或 CouchDB 中使用 skip 参数?

couchdb - 将 CouchDB 复制到本地 couch 会减小大小——为什么?

sockets - 如何知道我的套接字连接成功与否?

javascript - 如何修复 Node js 中的设置 header ?

javascript - 使用 morgan 创建记录器中间件

android - Android 游戏的服务器

oauth - 安全复制的分步说明?