From 5f76abec8bbd54367a4d0331ffca1ab055ece3fd Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Thu, 2 Apr 2026 14:48:40 +0800 Subject: [PATCH] fix: fix Docker dev proxy and handle non-JSON error responses in frontend --- docker-compose.dev.yml | 1 + packages/web/src/lib/api.ts | 8 +++++++- packages/web/vite.config.ts | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 094d3ac..9a53110 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -63,3 +63,4 @@ services: - "5173:5173" environment: NODE_ENV: development + API_URL: http://server:3000 diff --git a/packages/web/src/lib/api.ts b/packages/web/src/lib/api.ts index dcb9e28..f94c351 100644 --- a/packages/web/src/lib/api.ts +++ b/packages/web/src/lib/api.ts @@ -66,7 +66,13 @@ export async function apiFetch(path: string, options: RequestInit = {}): Prom } } - const json: ApiResponse = await res.json(); + const text = await res.text(); + let json: ApiResponse; + try { + json = JSON.parse(text); + } catch { + throw new Error(`Server error (${res.status})`); + } if (!json.success) { throw new Error(json.error?.message || 'Request failed'); } diff --git a/packages/web/vite.config.ts b/packages/web/vite.config.ts index 91d1cdb..f38fbc2 100644 --- a/packages/web/vite.config.ts +++ b/packages/web/vite.config.ts @@ -7,7 +7,7 @@ export default defineConfig({ server: { port: 5173, proxy: { - '/api': 'http://localhost:3000', + '/api': process.env.API_URL || 'http://localhost:3000', }, }, });