Моя функция показа CouchDB не будет запускать функцию Provides('json',...). Однако в некоторых случаях он будет запускать HTML-код. Вот функция шоу:
function(doc, req) {
provides('json', function(){
return {'json': doc };
});
provides('html', function(){
return "<html><body>html string here</body></html>";
});
return {'json': {
'hello': "goodbye"
}
};
}
Вот пример запроса при отправке text/x-json. hello:goodbye также возвращается, если я использую Accept: application/json
dave@ubuntu-laptop:~/py/liqc$ curl -i -H "Accept: text/x-json" http://127.0.0.1:8001/liqc/user-dave
HTTP/1.1 200 OK
Content-Length: 20
Vary: Accept
Server: CouchDB/1.0.2 (Erlang OTP/R14B)
ETag: "6V7EMSS64ZQ5SRLI0EYQVDWES"
Cache-Control: must-revalidate
Date: Mon, 27 Jan 2014 15:54:31 GMT
Content-Type: text/plain;charset=utf-8, text/x-json
{"hello":"goodbye"}
Когда я запрашиваю text/html, я также получаю hello:goodbye. Однако, если я удалю окончательный возврат функции show, application/json продолжит выдавать приветствие: до свидания, но text/html даст мне результаты, которые я хочу!
dave@ubuntu-laptop:~/py/liqc$ curl -i -H "Accept: text/html" http://127.0.0.1:8001/liqc/user-dave
HTTP/1.1 200 OK
Content-Length: 42
Vary: Accept
Server: CouchDB/1.0.2 (Erlang OTP/R14B)
ETag: "9B8K3XGK28Y7RL2ART28WLL50"
Date: Mon, 27 Jan 2014 16:02:41 GMT
Content-Type: text/html; charset=utf-8
<html><body>html string here</body></html>
Я делаю что-то не так или это что-то происходит с CouchDB? Я запускаю обратный прокси-сервер localhost для Cloudant BTW. Спасибо за любую помощь.