我对 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
我想我们可以使用 getInitialprops 来解决该错误。