如何处理 Next.JS 应用程序(应用程序路由)中的全局错误?

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

我对 nextjs 和 nextjs 应用程序路由很陌生。我只是没有得到任何东西,使用 NODE,当我构建项目时,我有这个全局错误处理程序:

const errorHandler = (err, req, res, next) => {
  let customErr = {
    statusCode: err.statusCode || 500,
    msg: err.message || "Something went wrong, try again later",
  };
  if (err.name === "ValidationError") {
    customErr.msg = Object.values(err.errors)
      .map((item) => item.message)
      .join(",");
    customErr.statusCode = 400;
  }
  if (err.code && err.code === 11000) {
    customErr.msg = `Duplicate value entered for ${Object.keys(
      err.keyValue
    )} field, please choose another value`;
    customErr.statusCode = 400;
  }
  if (err.name === "CastError") {
    customErr.msg = `No item found with id : ${err.value}`;
    customErr.statusCode = 404;
  }
  return res.status(customErr.statusCode).json({ msg: customErr.msg });
};

module.exports = errorHandler;

然后我在我的主应用程序文件中使用它来捕获所有错误。但在 nextjs 中,我了解到有一个 error.js 文件可以捕获所有错误,那么如何将这个概念转换为 nextjs 应用程序呢?

我正在尝试创建一个像 NODE 中那样的全局错误处理程序,这样我就可以在下一个 js 项目中使用express-async-errors,这样我就不需要每次都编写 try-catch

javascript node.js next.js error-handling next.js13
1个回答
0
投票

我想我们可以使用 getInitialprops 来解决该错误。

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