如何在API的下一个js中创建全局错误处理程序?

问题描述 投票:0回答:1

我创建了一个函数来处理错误,但我必须将此函数传递给 API 的每个 try-catch 块。我怎样才能避免这种情况? NextJS 有更好的方法来处理 API 错误吗?

我创建的函数,请建议任何文档或示例

const errorHandler = (err, req, res, next) => {
  const statusCode = err.statusCode || 500;
  const isDevelopment = process.env.NODE_ENV === 'development';
  // console.log("err",err);
  const responseMessage = isDevelopment ? `invalid request ${err.message}` : 'Something went wrong';
  return res.status(statusCode).json({
    status: false,
    message: responseMessage,
  });
};


module.exports = errorHandler;
next.js error-handling
1个回答
0
投票

如果你已经使用了 axios,你可以使用 axios.interceptor 来拦截所有对 API 的请求,以便你可以调整你的功能。

https://axios-http.com/docs/interceptors

如果您不想使用 axios,还有 Next.js 内置功能,称为“中间件”,它可以执行相同的操作(拦截对 API 端点的所有请求)。

https://nextjs.org/docs/app/building-your-application/routing/middleware

© www.soinside.com 2019 - 2024. All rights reserved.