gpt4 book ai didi

reactjs - 带有Express服务器的Next.js如何调用自定义错误页面?

转载 作者:行者123 更新时间:2023-12-03 08:37:56 29 4
gpt4 key购买 nike

我的Next.js应用程序中有一个表达中间件,可以将错误传递给表达实例:

function (req, res, expressNext) {
//Returns an error:
expressNext(err)
}
我不明白如何从我的Express Error处理程序函数呈现Error自定义页面。
我重现一个问题示例 here,其中:
  • 我的基本路径设置为“/preferences”(next.config.js)
  • 将返回错误的中间件附加到“/preferences”(see)
  • 和我的错误处理程序:
  • function errorHandler(err, req, res, next) {
    console.log("ERROR HANDLER WITH ERROR", err);
    res.status(err);
    return app.render(req, res, '/_error', req.query);
    }
    但是,不是呈现 _next.js组件,而是返回状态码为500的所有 Assets :

    它可以正确访问错误处理程序;我怎么了

    最佳答案

    我找到了解决方案:
    中间件:

    server.use('/favorites', async (req, res, nextFunction) => {
    //Log and Handle error only for the HTML page
    if (req.path === '/') {
    nextFunction(500)
    } else {
    nextFunction();
    }
    });
    错误处理程序:
    async function errorHandler(err, req, res, next): Promise<void> {
    res.status(500);
    const error = await app.renderToHTML(req, res, '/_error');
    res.send(error);
    }

    关于reactjs - 带有Express服务器的Next.js如何调用自定义错误页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64944786/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com