我创建了一个函数来处理错误,但我必须将此函数传递给 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;
如果你已经使用了 axios,你可以使用 axios.interceptor 来拦截所有对 API 的请求,以便你可以调整你的功能。
https://axios-http.com/docs/interceptors
如果您不想使用 axios,还有 Next.js 内置功能,称为“中间件”,它可以执行相同的操作(拦截对 API 端点的所有请求)。
https://nextjs.org/docs/app/building-your-application/routing/middleware