NodeJS 在axio中处理错误时,得到错误消息“error.toJSON()不是函数”

kpbpu008  于 2022-12-22  发布在  Node.js
关注(0)|答案(1)|浏览(138)

当我运行代码时,我得到消息error.toJSON is not a function。我应该如何更好地处理这个错误?

const installDependencies = async (BASE_URL, body) => {
  try {
    const headers = {
      "Content-type": "application/json",
    };
    const response = await axios.post(`${BASE_URL}/data`, body, { headers });
    return response;
  } catch (error) {
    console.error(error.response?.data, error.toJSON());
    throw new Error("Failed to install dependencies");
  }
};
szqfcxe2

szqfcxe21#

您的catch可以处理AxiosError或任何其他可抛出对象。
Axios提供了一个效用函数来确定是否是前者

const installDependencies = async (baseURL, body) => {
  try {
    return await axios.post("/data", body, { baseURL });
  } catch (error) {
    if (axios.isAxiosError(error)) {
      console.error(error.response?.data, error.toJSON());
    } else {
      console.error(error);
    }

    throw new Error("Failed to install dependencies");
  }
};

See https://github.com/axios/axios/#typescript
顺便说一句,你的头是多余的,Axios提供了一个更简单的选项来设置baseURL

相关问题