1

我正在以 CouchDB 作为数据库的 express.js 框架上构建一个 Node.js 应用程序。我正在使用 CouchDB 的会话 api 来维护会话状态,以及用于不同数据部分的各种数据库。

基本上在每个请求中,我的应用程序代码都会向 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 文档?

4

1 回答 1

1

dscape 依赖响应码的信息是正确的,在大多数情况下你会得到一个带有errorand的对象reason。批量文档错误是我能想到的唯一地方,其中任何一个都不是真的。如果只有一个文档失败,那么你仍然会得到 200,但你会得到与error/reason失败的文档相对应的数组元素内。有关这方面的更多信息,请参阅文档

于 2012-06-26T02:26:07.817 回答