CouchDB не распознает функции обновления в моем новом дизайнерском документе

Я создал новые проектные документы с фиктивной функцией обновления. Но когда я пытаюсь это проверить, CouchDB не идентифицирует мою функцию в проектном документе.

Ниже мой проектный документ:

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

Но когда я пытаюсь вызвать эту функцию обновления с помощью пута, получаю 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"
}

Вижу, все в порядке, не могу найти проблему. Любая помощь будет принята с благодарностью.


person Purushotham Kumar    schedule 15.12.2014    source источник


Ответы (1)


Я думаю, что твой побег неправильный. Ваш блок «обновления» содержит одну полную строку. Попробуй это:

{  
  "_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) { ... }"
} 
person Doc Brown    schedule 15.12.2014
comment
Вы правы, я понял это при настройке хэша функций. Спасибо за помощь! - person Purushotham Kumar; 16.12.2014