我无法触发Next.js的500错误页面。大多数资源都讨论如何创建自定义错误页,但是Next.js文档简要地提到了它们的默认错误页面。当API以500状态响应时,我想触发这个默认页面。
假设API响应为500个,Next.js应该显示一个500个错误页面。到目前为止,它返回到发出请求的页面。
return res.status(500).end();
发布于 2022-05-10 09:00:06
我找到的唯一解决方案是从getServerSideProps
抛出一个未处理的错误
res.statusCode = 500;
throw new Error('Internal Server Error');
我看到NextJs将其作为500状态代码处理,但只在生产/暂存环境中处理。npm run dev
将无法工作,您将无法看到默认的500页。
我需要抛出一个500状态代码,以防止Google去索引我的页面,因为页面内容发生了重大变化,并且该页面的产品不再可用。
发布于 2022-08-12 16:45:13
这就是我如何能够使用npm run build
和npm run start
触发这个
(我在索引页中放置了这个随机错误触发器)
export const getServerSideProps: GetServerSideProps = async () => {
function getRandomInt(max: number): number {
return Math.floor(Math.random() * max);
}
if (getRandomInt(10) === 5) {
throw new Error('Internal Server Error');
}
return {
props: {
},
}
}
https://stackoverflow.com/questions/71134546
复制相似问题