Cloudant list / show函数可以返回对象和数组(任何JSON)吗?

时间:2017-08-29 13:56:00

标签: couchdb cloudant nosql

根据Cloudant的API文档:Show函数可用于以不同格式呈现文档或仅从较大文档中提取某些信息。列表函数的情况也是如此,唯一的区别是它适用于一组文档。我创建了一个带有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的标头。

1 个答案:

答案 0 :(得分:1)

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

如果您想发送JSON,那么执行JSON.Stringify(doc),因为body的值应该达到预期效果。