node.js - CouchDB 响应失败的方式有哪些?

标签 node.js couchdb express

我正在 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 依赖响应代码的信息是正确的,在大多数情况下,您将得到一个带有 errorreason 的对象。批量文档错误是我能想到的唯一一个这些都不是真的的地方。如果只有一个文档失败,那么您仍然会得到 200,但您会在与失败的文档对应的数组元素中得到错误/原因。请参阅the docs了解更多信息。

关于node.js - CouchDB 响应失败的方式有哪些?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11195513/

相关文章:

javascript - 使用 connect.query() 在 nodejs 中查询 url

node.js - 针对竞争条件的 Mongoose 自定义验证功能

ruby - 从物化路径构建树

javascript - Typescript 导致找不到模块错误

node.js - 通过 Node.Js 生成的管道 Amazon S3 下载流导致下载不完整

javascript - 无法在 promise 中捕获 UnhandledPromiseRejectionWarning

node.js - 如何使用 Node.js 从 AWS CloudFront 连接到 AWS ElastiCache 集群?

couchdb - 如何在没有应用程序层的 CouchDB 中为每个新用户创建一个新数据库

javascript - 如何在 couchDB 中添加 cors——请求的资源上不存在 'Access-Control-Allow-Origin' header

node.js - 我是否只需使用具有快速渲染功能的模板语言?