2017-10-27 7 views
0

client errors (4xx) and server errors (5xx)をスーパーエージェントerr.statusで確認したいと思います。 HTTPから:スーパーエージェントの応答から応答クラスを決定できますか?

ステータスコードの最初の桁はクラスの応答を定義します。

私は簡単に書くことができます:

var _isClientOrServerError = function(errStatus){ 
    var errorRange = Math.floor(err.status/100) 
    return ([5, 4].includes(errorRange)) 
} 
をしかし、リクエストからレスポンスクラスを決定するためのより良い方法はありますか?

例:。:

if (res.class === 'SERVER_ERROR') 

または類似?

これを実行するプラグインがある場合は、ハッピーすぎます。

答えて

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のエラーを検出するのに十分です。

関連する問題