fix: 改进网络错误检测 - 检查error.cause中的EHOSTUNREACH等错误码
This commit is contained in:
parent
30a0c09cf3
commit
d38ee5d98b
@ -212,6 +212,7 @@ export async function POST(request: NextRequest) {
|
|||||||
|
|
||||||
// 检查是否是网络连接错误
|
// 检查是否是网络连接错误
|
||||||
if (fetchError instanceof Error) {
|
if (fetchError instanceof Error) {
|
||||||
|
// 检查超时错误
|
||||||
if (fetchError.name === 'AbortError') {
|
if (fetchError.name === 'AbortError') {
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
@ -222,14 +223,28 @@ export async function POST(request: NextRequest) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fetchError.message.includes('EHOSTUNREACH') ||
|
// 检查错误消息和cause中的网络错误
|
||||||
fetchError.message.includes('ENOTFOUND') ||
|
const errorMessage = fetchError.message || '';
|
||||||
fetchError.message.includes('ECONNREFUSED') ||
|
const errorCause = (fetchError as any).cause;
|
||||||
fetchError.message.includes('No route to host')) {
|
const causeMessage = errorCause?.message || '';
|
||||||
|
const causeCode = errorCause?.code || '';
|
||||||
|
|
||||||
|
// 检查各种网络连接错误
|
||||||
|
if (errorMessage.includes('EHOSTUNREACH') ||
|
||||||
|
errorMessage.includes('ENOTFOUND') ||
|
||||||
|
errorMessage.includes('ECONNREFUSED') ||
|
||||||
|
errorMessage.includes('No route to host') ||
|
||||||
|
causeMessage.includes('EHOSTUNREACH') ||
|
||||||
|
causeMessage.includes('ENOTFOUND') ||
|
||||||
|
causeMessage.includes('ECONNREFUSED') ||
|
||||||
|
causeMessage.includes('No route to host') ||
|
||||||
|
causeCode === 'EHOSTUNREACH' ||
|
||||||
|
causeCode === 'ENOTFOUND' ||
|
||||||
|
causeCode === 'ECONNREFUSED') {
|
||||||
return NextResponse.json(
|
return NextResponse.json(
|
||||||
{
|
{
|
||||||
error: "无法连接到抠图API服务器",
|
error: "无法连接到抠图API服务器",
|
||||||
detail: `服务器无法访问 ${apiUrl},请检查:\n1. API服务器是否在线\n2. 网络连接是否正常\n3. 防火墙设置是否正确`,
|
detail: `服务器无法访问 ${apiUrl},请检查:\n1. API服务器是否在线\n2. 网络连接是否正常\n3. 防火墙设置是否正确\n4. 端口8000是否已开放`,
|
||||||
},
|
},
|
||||||
{ status: 503 }
|
{ status: 503 }
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user