Javascript 通过Couchdb中的更新处理程序添加id和作者字段

Javascript 通过Couchdb中的更新处理程序添加id和作者字段,javascript,couchdb,couchapp,Javascript,Couchdb,Couchapp,人们是如何通过Couchdb中的更新处理程序添加额外字段的?我想添加作者(我有一个验证功能来检查用户是否登录)和通过更新处理程序创建新文档时添加的id 作者的名字来自req.userCtx.name,我发送的数据在req.body中,我使用req.uuid作为_id "updates": { "new": "function(doc,req) { var message = req.uuid; return [ { _id : req.uuid, "author" : req.userCt

人们是如何通过Couchdb中的更新处理程序添加额外字段的?我想添加作者(我有一个验证功能来检查用户是否登录)和通过更新处理程序创建新文档时添加的id

作者的名字来自req.userCtx.name,我发送的数据在req.body中,我使用req.uuid作为_id

"updates": {
   "new": "function(doc,req) { var message = req.uuid; return [ { _id : req.uuid, "author" : req.userCtx.name, data : req.body}, message]}"
}
数据通过一个curl POST发送

$ cat test.json
{"data" : {"name" : "myname","dob" : "myDOB"}}
这是数据通过更新处理程序的外观

{"_id":"a018fed749d64f5db754b39af803a88f","_rev":"1-939793c36d2bfe4de86f808fab056959","author":"admin","data":"{\"name\" : \"myname\",\"dob\" : \"myDOB\"}"}
如果我写一篇标准文章(不是通过更新处理程序),它看起来是这样的

{"_id":"a018fed749d64f5db754b39af803b621","_rev":"1-e44f0471e1df1018439fee3681b49547","data":{"name":"myname","dob":"myDOB"}}
我做错了什么


编辑


典型的情况是,我花了几个小时查找并发布了Qestion,然后找到了解决方案

这有助于-

文档现在具有id和作者

{"_id":"a018fed749d64f5db754b39af80406b7","_rev":"1-c486b02d6f320eb15e6115e71b3f02cc","data":{"name":"myname","dob":"myDOB"},"author":"admin"}
{   "_id":"a018fed749d64f5db754b39af80406b7",
    "_rev":"1-c486b02d6f320eb15e6115e71b3f02cc",
    "data":{"name":"myname","dob":"myDOB"},
    "author":"admin"
}

典型的情况是,我花了几个小时查找并发布了Qestion,然后找到了解决方案

本条来自—

文档现在具有id和作者

{"_id":"a018fed749d64f5db754b39af80406b7","_rev":"1-c486b02d6f320eb15e6115e71b3f02cc","data":{"name":"myname","dob":"myDOB"},"author":"admin"}
{   "_id":"a018fed749d64f5db754b39af80406b7",
    "_rev":"1-c486b02d6f320eb15e6115e71b3f02cc",
    "data":{"name":"myname","dob":"myDOB"},
    "author":"admin"
}

它可以帮助您使更新处理程序函数返回请求对象,如下代码所示:

(...)
return [doc, JSON.stringify(req)]
(...)

我这样做是为了理解/识别请求对象中的属性(这里是请求对象文档:)

作为一个新用户,我需要8个小时才能回答您自己的问题,所以我不想再回答您的问题,而是想编辑一下,以防我忘了回来。我现在回答:——)