CouchDB无法识别我的新设计文档中的更新功能

时间:2014-12-15 10:59:20

标签: couchdb design-documents

我创建了一个带有虚拟更新功能的新设计文档。但是当我尝试测试它时,CouchDB没有在设计文档中识别我的功能。

以下是我的设计文件:

{
   "_id": "_design/payable_draft",
   "_rev": "13-c9c9a9f88c24b75cdd28204a526f66a6",
   "updates": "{\"empty_update\":\"function(doc, req){\n\treturn [doc,toJSON(\"empty_update\")];\n}\"}"
}

但是当我尝试使用put调用此更新函数时,获取404。 请求:

PUT /db/_design/payable_draft/_update/empty_update/my_doc HTTP/1.1
Host: <my couchDB>
Accept: application/json
Content-Type: application/json
Cache-Control: no-cache

响应:

{
    "error": "not_found",
    "reason": "missing updates function empty_update on design doc _design/payable_draft"
}

我看到一切看起来都很好,无法找到问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

我认为你的逃避是错误的。您的“更新”块包含一个完整的字符串。试试这个:

{  
  "_id":"_design/payable_draft",
  "_rev":"13-c9c9a9f88c24b75cdd28204a526f66a6",
  "updates":{  
     "empty_update" : "function(doc, req){return [doc,toJSON('empty_update')];}"
  }
}

有关详细信息,请参阅http://wiki.apache.org/couchdb/Document_Update_Handlers。如上所述,必须将更新处理程序置于“更新”下面的属性:

"updates" : {
    "myhandler" : "function(doc, req) { ... }"
}