1
1
import React , { useState , useEffect } from 'react' ;
2
- import { trpc } from '../services/trpc' ;
3
2
4
3
export const BackendStatus : React . FC = ( ) => {
5
4
const [ status , setStatus ] = useState < 'checking' | 'connected' | 'error' > ( 'checking' ) ;
@@ -8,14 +7,26 @@ export const BackendStatus: React.FC = () => {
8
7
useEffect ( ( ) => {
9
8
const checkBackend = async ( ) => {
10
9
try {
11
- // 使用 tRPC 的 healthCheck 方法来检查后端连接
12
- const result = await trpc . auth . healthCheck . query ( ) ;
13
-
14
- if ( result . status === 'ok' ) {
15
- setStatus ( 'connected' ) ;
10
+ // 使用环境变量中的后端URL,如果没有则回退到localhost
11
+ const backendUrl = import . meta. env . VITE_BACKEND_URL || 'http://localhost:3000' ;
12
+ const response = await fetch ( `${ backendUrl } /api/trpc/auth.healthCheck` , {
13
+ method : 'GET' ,
14
+ headers : {
15
+ 'Content-Type' : 'application/json' ,
16
+ }
17
+ } ) ;
18
+
19
+ if ( response . ok ) {
20
+ const data = await response . json ( ) ;
21
+ if ( data . result ?. data ?. status === 'ok' ) {
22
+ setStatus ( 'connected' ) ;
23
+ } else {
24
+ setStatus ( 'error' ) ;
25
+ setError ( '后端服务异常' ) ;
26
+ }
16
27
} else {
17
28
setStatus ( 'error' ) ;
18
- setError ( '后端服务异常: ' + ( result . message || '未知错误' ) ) ;
29
+ setError ( `HTTP ${ response . status } : ${ response . statusText } ` ) ;
19
30
}
20
31
} catch ( err ) {
21
32
setStatus ( 'error' ) ;
@@ -45,7 +56,7 @@ export const BackendStatus: React.FC = () => {
45
56
< p > 请确保后端服务正在运行:</ p >
46
57
< p > 1. 启动 Basic-Web-Game-Backend 项目</ p >
47
58
< p > 2. 运行 npm run dev</ p >
48
- < p > 3. 确保服务运行在 $ { import . meta. env . VITE_BACKEND_URL || 'http://localhost:3000' } </ p >
59
+ < p > 3. 确保服务运行在 { import . meta. env . VITE_BACKEND_URL || 'http://localhost:3000' } </ p >
49
60
</ div >
50
61
) }
51
62
</ div >
0 commit comments