我正在 express.js 框架上构建一个 Node.js 应用程序,并使用 CouchDB 作为数据库。我使用 CouchDB 的 session api 来维护 session 状态,并使用各种数据库来存储不同部分的数据。
基本上,对于每个请求,我的应用程序代码都会向 Couch 发出请求,然后如果出现错误(使用 Node),我可以通过记录错误并重定向到 404 页面或类似的内容来做出适当的响应。但是,如果我收到 CouchDB 错误,Node 不会将其视为错误,而是会考虑该数据。现在,只要 CouchDB 只能返回这种格式,我就完全没问题:
{
"error": "illegal_database_name",
"reason": "Only lowercase characters (a-z), digits (0-9), and any of the characters _, $, (, ), +, -, and / are allowed. Must begin with a letter."
}
具有两个属性的 JSON 文档:错误和原因。没关系,我可以解析它并返回适当的消息;实际上相当优雅。
但是!这就是我对 CouchDB 的期望吗?或者 Couch 是否有其他可能失败的方式,即不会生成包含这两个字段(属性)的 JSON 文档?最佳答案
dscape 依赖响应代码的信息是正确的,在大多数情况下,您将得到一个带有 error
和 reason
的对象。批量文档错误是我能想到的唯一一个这些都不是真的的地方。如果只有一个文档失败,那么您仍然会得到 200,但您会在与失败的文档对应的数组元素中得到错误/原因
。请参阅the docs了解更多信息。
关于node.js - CouchDB 响应失败的方式有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195513/