Next.js中getServerSideProps里怎么正确调用异步API并处理错误?
我在用Next.js做服务端渲染,想在getServerSideProps里请求用户数据,但一遇到网络错误页面就直接挂了,试过try/catch好像也不起作用。
这是我的代码:
export async function getServerSideProps() {
const res = await fetch('https://api.example.com/user/123');
const user = await res.json();
return { props: { user } };
}
有没有人知道该怎么安全地处理这种异步请求的异常?比如返回默认值或者重定向到错误页?
这里有两个关键点:一是检查 res.ok 来判断请求是否成功,二是通过 catch 捕获所有异常。如果出错就返回一个错误信息,并且可以设置重定向到错误页面。
这方法在实际项目中验证过,能有效避免页面直接崩溃。不过要注意的是,redirect 只能在某些情况下使用,具体看你的需求。要是不想跳转,也可以只返回 error 字段来显示错误提示。