首页 > 解决方案 > Express 中的自定义错误库未显示在 Axios catch 块中

问题描述

我的应用程序有两个问题,我找不到任何解决方案...

  1. 我有一个自定义错误库,可以捕获所有错误并返回和错误对象。在我的客户端上,我正在尝试访问该对象。例如,当收到 401 错误时,我的 catch 块中只会收到“错误:请求失败,状态码为 401”消息。

  2. 我只希望我的自定义错误显示在控制台中。是否可以让axios不将默认的红色错误信息记录到控制台? axios默认错误信息

客户端

const isSignedIn = async () => {
  try {
    const res = await axiosInstance.post(`${SERVER_URL}/user/is_signed_in`);
    return res.data.isSignedIn;
  } catch (error) {
    console.log(error);
  }
};

服务器端

exports.isSignedIn = AsyncManager(async (req, res, next) => {
  const refreshToken = req.cookies['refreshToken'];
  if (!refreshToken) {
    return next(new ErrorLibrary(`No refresh token found`, 401));
  }
  return res.status(200).json({ isSignedIn: true });
});

错误库

class ErrorLibrary extends Error {
  constructor(message, statusCode) {
    super(message);
    this.statusCode = statusCode;
    this.status = `${statusCode}`.startsWith('4') ? 'Client Error' : 'Server Error';
  }
}

标签: javascriptnode.jsexpressaxios

解决方案


推荐阅读