我可以从超级回复中确定响应类吗?

时间:2017-10-27 13:56:23

标签: javascript http http-error superagent

我想在超级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' )

或者类似的?

如果有插件可以执行此操作也很开心。

1 个答案:

答案 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错误。