node.js - 常见的 http 库中如何定义错误?数据和错误可以共存吗?
问题描述
库中使用的回调函数http request
通常有一个参数 forerror
和 1(或 2)多个用于响应内容。
但是,我找不到错误对象的明确定义以及错误和响应对象之间的关系(主要是如果它们可以共存)。
对于Q1,我的第一印象是可以通过状态码来分类。如果是这样,http中的错误只能有两个类别之一(客户端/服务器)?
对于第二季度,我相信在某些情况下两者兼而有之是有意义的。例如,服务器可能响应 a 451 Unavailable For Legal Reasons
,但仍尽力返回一些字段?
解决方案
“数据和错误可以共存吗?”
是的,它们可以共存。实际上,根据RFC7231 (HTTP Semantics and Content)
3.3. 有效载荷语义
...
带有错误状态代码的响应消息通常包含一个表示错误条件的有效负载,以便它描述错误状态以及建议的后续步骤来解决它。
“常见的 http 库中如何定义错误?”
这是 HTTP 库实现逻辑。由于任何人都可以开发 HTTP 库,解析响应负载并做任何他/她想做的事情,“如何定义错误”问题主要由库设计者决定,没有标准可以回答。
推荐阅读
- laravel - Predis\Connection\ConnectionException:无法分配请求的地址 [tcp://127.0.0.1:6379]
- highcharts - Highcharts 多窗格和滚动条
- javascript - 如何使用 .map 添加对象的自定义属性
- c# - 脚本之间的统一通信
- c# - JSON.net - C#:反序列化字典时的空引用
- python - os.path.splitext(file.txt.gz) 变成 (file,.txt.gz)
- php - 将图片添加到 PhpSpreadsheet 中的评论
- php - Laravel 验证 – 日期格式 m/y 不接受特定值
- postgresql - 对分区和分区内的行进行排序
- ios - 创建使用客户端证书的 iOS 12 NWConnection