我一直在决定哪种方法是错误处理的最佳实践。这涉及将请求从Axios客户端发送到Laravel服务器端。对于可能如何处理错误,我有两种不同的方法。哪个是最佳做法,为什么?
在此示例中,我们将使用从服务器中以 JSON 格式获取配置文件信息。
第一种错误处理方法:
服务器端看起来像这样,它根据成功与否返回两个不同的JSON响应。首先是成功的响应,然后是错误的响应。
//success response
return response()->json([
'success' => true,
'data' => []
], 200);
//error response
return response()->json([
'success' => false,
'error' => []
], 400);
客户端看起来像这样,它通过Axios发送请求以获取配置文件信息,并根据HTTP响应进行相应处理。
axios.get('/json/profile')
.then((response) => {
// handle success response (HTTP CODE 200)
})
.catch((error) => {
// handle error response (HTTP CODE 400)
});
第二种错误处理方法:
此方法通过始终返回200的HTTP响应代码(如果失败)和错误消息来避免在控制台中出现类似的消息。
服务器端看起来像这样,唯一改变的是JSON服务器响应中的“成功”值。
//success response
return response()->json([
'success' => true,
'data' => []
], 200);
//error response
return response()->json([
'success' => false,
'error' => []
], 200);
客户端看起来像这样,它将检查响应的成功部分是真还是假,以确定是否是错误。
axios.get('/json/profile')
.then((response) => {
if (response.success) {
//handle success
} else {
//handle error
}
});
使用第二种方法可以避免将任何错误信息传递到用户控制台。