通过Couchdb中的更新处理程序添加id和author字段
Adding id and author fields via a update handler in Couchdb
人们是如何通过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'"}"}
如果我做一个标准的POST(不是通过更新处理程序),它看起来是这样的。。
{"_id":"a018fed749d64f5db754b39af803b621","_rev":"1-e44f0471e1df1018439fee3681b49547","data":{"name":"myname","dob":"myDOB"}}
我做错了什么?
编辑
我花了几个小时寻找问题,然后发布问题,我找到了解决方案。
这有助于-http://grokbase.com/t/couchdb/user/10cbesx3zz/how-should-i-handle-json-parsing-in-update-handler
{ "new": "function(doc,req) { var data = JSON.parse(req.body); data['_id'] = req.uuid;data.author = req.userCtx.name; message = req.uuid; return [ data, message]}" }
doc现在有id和author。。
{"_id":"a018fed749d64f5db754b39af80406b7","_rev":"1-c486b02d6f320eb15e6115e71b3f02cc","data":{"name":"myname","dob":"myDOB"},"author":"admin"}
我花了几个小时寻找并发布了我找到解决方案的问题。
这个来自-http://grokbase.com/t/couchdb/user/10cbesx3zz/how-should-i-handle-json-parsing-in-update-handler
{
"new": "function(doc,req) {
var data = **JSON.parse(req.body)**;
data['_id'] = req.uuid;data.author = req.userCtx.name;
message = req.uuid;
return [ data, message]
}"
}
doc现在有id和author。。
{ "_id":"a018fed749d64f5db754b39af80406b7",
"_rev":"1-c486b02d6f320eb15e6115e71b3f02cc",
"data":{"name":"myname","dob":"myDOB"},
"author":"admin"
}
它可以帮助您使更新处理程序函数返回请求对象,如下代码:
(...)
return [doc, JSON.stringify(req)]
(...)
我这样做是为了理解/确定Request对象中的属性(以下是Request对象文档:http://docs.couchdb.org/en/latest/json-structure.html#request-对象)
相关文章:
- 可以't将带有变量的id添加到类中
- 使用 jQuery 将自定义 ID 添加到克隆的 HTML 节点
- 将ID添加到地图框标记
- 单击按钮时,我如何将li的id添加为1
- Ember.js为特定的模型id添加css类
- jQuery UI:如何将ID添加到组合框中
- 通过向动态id添加字符串,使用JavaScript控制文本框
- 使用 javascript 在运行时将 id 添加到
- 标签
- 将关联的 ID 添加到 for 循环中的复选框
- 将 ID 添加到画布绘图以供以后检索
- 如何将唯一 ID 添加到 Javascript 中动态创建的输入字段
- 将行 ID 添加到 jquery 弹出窗口
- 在 jQuery 中向未知元素 ID 添加值
- 将 Div ID 添加到 YouTube iFrame
- Javascript - 将唯一的元素 id 添加到具有相同类名的多个元素
- 如何阻止单个模型将其 id 添加到 Backbone 中的 url
- 在滚动页面时将页面部分 ID 添加到地址栏
- Stylus:为在 JavaScript 中生成的 ID 添加样式
- 如何在谷歌地图API中将类或ID添加到叠加层
- 将唯一 ID 添加到在单击函数上生成的动态 html