我想在超级err.status
中查看client errors (4xx) and server errors (5xx)。来自HTTP RFC:
状态代码的第一个数字定义了响应的类。
我可以轻松地写道:
var _isClientOrServerError = function(errStatus){
var errorRange = Math.floor(err.status / 100)
return ( [5, 4].includes(errorRange) )
}
但是有没有更好的方法来确定请求中的响应类?
例如:
if ( res.class === 'SERVER_ERROR' )
或者类似的?
如果有插件可以执行此操作也很开心。
答案 0 :(得分:0)
是。 Superagent将HTTP响应类调用为类型, statusType
字段包含响应类。来自文档:
// status / class
res.status = status;
res.statusType = type;
// basics
res.info = 1 == type;
res.ok = 2 == type;
res.clientError = 4 == type;
res.serverError = 5 == type;
res.error = 4 == type || 5 == type;
所以res.statusType
是包含响应类的字段(它是1到5之间的JS Number
),但检查res.error
足以检测4xx或5xx错误。