【问题标题】:Can Cloudant list/show functions return objects and arrays(any JSON)?Cloudant 列表/显示函数能否返回对象和数组(任何 JSON)?
【发布时间】:2017-08-30 05:24:34
【问题描述】:

根据 Cloudant 的 API 文档:Show 函数可用于以不同的格式呈现文档或仅从较大的文档中提取一些信息。列表函数也是如此,唯一的区别是它适用于一组文档。我创建了一个带有显示功能的设计文档,如下所示:

{ "shows": { "showDemo":"function(doc,req){return {'body': doc, 'headers':{'Content-Type':'application/json'}}}" } }

当我使用这个函数,_design/showFunc/_show/showDemo/doc1,我得到以下错误:

{ "error": "unknown_error", "reason": "badarg", "ref": 1793182837 }

当 show 函数返回一个数组时,我观察到了同样的错误。但是,返回 HTML、Text、XML 时不会报错。我们可以说 list/show 函数只能以 JSON 以外的格式返回数据吗?此示例显示 req 对象 request Object 的“Accept”标头。

【问题讨论】:

    标签: couchdb cloudant nosql


    【解决方案1】:

    这里发生的是 show 函数需要返回一个响应对象。从文档(请参阅http://docs.couchdb.org/en/2.1.0/json-structure.html#response-object)中,body 字段必须是字符串,因此您可以返回任何您喜欢的内容,但需要对其进行字符串化或以其他方式转换为可以作为 HTTP 发送的格式。

    如果您想发送 JSON,那么将 JSON.Stringify(doc) 作为 body 的值应该符合您的预期。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-27
      相关资源
      最近更新 更多