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"
}
Я вижу, все выглядит хорошо, не могу найти проблему. Любая помощь будет принята с благодарностью.
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) { ... }"
}