在 Next.js 返回错误中从 API 端点返回 404

Returning a 404 from an API endpoint in Next.js returning error

问题是,如果 ID 不在数据库中,它将 return 出现 404 错误,我尝试检查 res.status == 404,但它 returns 进行验证之前的错误。

    export const getServerSideProps = async (context) => {
  const { id } = context.query;

  const res = await axios.get(`${process.env.API_URL}/user/jobs/${id}`); //if ID does not exists here returns an error an does not validate the below lines
  if (res.status == 404) { //not check if the above request returns a 404
    return {
      notFound: true,
    };
  }
  const jobs = res.data;
  return {
    props: {
      jobs,
    },
  };
};

与其根据结果创建条件,不如创建错误处理程序。如何处理 reactjs 错误:https://reactjs.org/blog/2017/07/26/error-handling-in-react-16.html

使用 fetch 代替 axios。

export const getServerSideProps = async (context) => {
  const { id } = context.query;

  const res = await fetch(`${process.env.API_URL}/user/application/${id}`);
  const data = await res.json();
  console.log(data);
  if (data.success == false) {
    return {
      notFound: true,
    };
  }
  const jobs = data.job;

  return {
    props: {
      jobs,
    },
  };
};