Couchdb更新处理程序

Couchdb更新处理程序,couchdb,handlers,Couchdb,Handlers,以下:及 我正在尝试创建我自己的函数,该函数现在递增一个整数,但我得到: {“错误”:“错误的请求”,“原因”:“附件名称不能以''.'''开头”} 我的设计文档看起来像:_design/db "check": { "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1; return[channel, 'check

以下:及

我正在尝试创建我自己的函数,该函数现在递增一个整数,但我得到:

{“错误”:“错误的请求”,“原因”:“附件名称不能以''.'''开头”}

我的设计文档看起来像:_design/db

  "check": {
        "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1;  return[channel, 'check']}"
    }
请求如下:

curl -X PUT https://server/db/_design/db/_check/increment/channels?channel=foo
我不太明白我做错了什么,如果我删除“uu”,我会得到:

{“错误”:“冲突”,“原因”:“文档更新冲突”。}


谢谢,我想你的要求是错误的。试着这样做:

curl -X PUT https://server/db/_design/db/_update/increment/channels?channel=foo
{
    "_id": "_design/doc",
    "updates": {
        "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1;  return[channel, 'check']}"
    }
}
其次,更新处理程序函数应该直接位于设计文档中的“updates”键中(因此不是任何视图的一部分)。因此,您的设计文档应如下所示:

curl -X PUT https://server/db/_design/db/_update/increment/channels?channel=foo
{
    "_id": "_design/doc",
    "updates": {
        "increment": "function(doc,req){ var channel = req.query.channel; doc.channels[0].sp = doc.channels[0].sp+1;  return[channel, 'check']}"
    }
}