Couchdb Show函数提供json

Couchdb Show函数提供json,couchdb,cloudant,Couchdb,Cloudant,My CouchDB show函数将不会运行提供('json',…)函数。但在某些情况下,它将运行html提供的。以下是显示功能: function(doc, req) { provides('json', function(){ return {'json': doc }; }); provides('html', function(){ return "<html><body>html string here</body>&l

My CouchDB show函数将不会运行提供('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/html时,我也会得到hello:再见。但是,如果我删除show函数的最终返回,application/json将继续给我hello:再见,但是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>
dave@ubuntu-笔记本电脑:~/py/liqc$curl-i-H“Accept:text/html”http://127.0.0.1:8001/liqc/user-戴夫
HTTP/1.1200ok
内容长度:42
更改:接受
服务器:CouchDB/1.0.2(Erlang OTP/R14B)
ETag:“9B8K3XGK28Y7RL2ART28WLL50”
日期:2014年1月27日星期一格林尼治标准时间16:02:41
内容类型:text/html;字符集=utf-8
这里是html字符串

我是做错了什么还是CouchDB出了什么事?我正在运行cloudant的localhost反向代理。顺便说一句,谢谢您的帮助。

如果您使用
提供的
,则不应使用最终
返回<代码>返回
取代任何
提供的

另外,当show函数在两个不同的位置提供JSON时,您希望在请求JSON时得到什么?只使用
提供的
即可

关于这一点:

但是,如果我删除show函数的最终返回,application/json将继续给我hello:再见


如果您完全删除了最终退货,您将无法获得“hello”:“再见”
。也许你忘了更新设计文档了?调试错误的源代码可能非常令人沮丧…

感谢您的回复!从我看到的所有示例中,我认为在使用提供时不需要返回,但我被卡住了。感谢您确认此处不应出现退货。此外,我还错误地说,我取消了退货,但仍然得到了问候:再见。如果我发送accept“text/x-json”或“application/json”,我实际上得到的是一个内容长度为0的响应。我知道不返回是正确的选择,所以我稍微弄乱了我的provides json函数。如果我提供('json',function(){return{'body':toJSON(doc)};});这将为我提供正确的内容类型,并输出文档!
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>