人們如何通過Couchdb中的更新處理程序添加額外字段?我想添加作者(我有一個驗證函數來檢查用戶是否已登錄),並在通過更新處理程序創建新文檔時添加了id。通過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]}"
}
數據通過被送往捲曲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"}}
我在做什麼錯?
編輯
典型已經花了幾個小時尋找,然後張貼我找到解決辦法的qestions。
這幫助 - 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]}" }
文檔目前已擁有ID和作者..
{"_id":"a018fed749d64f5db754b39af80406b7","_rev":"1-c486b02d6f320eb15e6115e71b3f02cc","data":{"name":"myname","dob":"myDOB"},"author":"admin"}
因爲我的新用戶需要8個小時才能回答你自己的問題,所以不要回答我的想法,我會編輯以防萬一我忘了回來。現在已經回答:-) – Adam 2012-07-31 20:34:41