NodeJS 当响应代码是500(或不是200)时,有没有办法防止Axios抛出错误?

txu3uszq  于 2023-05-17  发布在  Node.js
关注(0)|答案(1)|浏览(252)

axios中是否有一个选项可以防止它在响应代码不是200时抛出错误?
当前,当用户正确登录时,响应代码为200。如果用户登录失败,则响应代码为500。
如果axios在状态码500上抛出一个错误,我的代码就会变得更加冗长:
这一点:

var result = await axios.post(url, data, headers);
  var data = result.data;

变成:

try {
    var result = await axios.post(url, accessOptions, headers);
    var data = result.data;
}
catch(error) {
    data = error.response.data;
}

换句话说,我想告诉axios“Don't you worry about throwing errors,let me worry about blank." 让我使用try catch来处理语法错误或其他错误,而不是失败的登录响应代码500。

jk9hmnmh

jk9hmnmh1#

您可以使用validateStatus config option

var result = await axios.post(url, data, {
    headers,
    // Don't throw when the status code is 500
    validateStatus: status => (status >= 200 && status < 300) || status === 500
  });
  var data = result.data;
var result = await axios.post(url, data, {
    headers,
    // Never throw
    validateStatus: () => true
  });
  var data = result.data;

相关问题