Просмотр исходного кода

♻️ refactor(server): 重构数据库初始化逻辑

- 将数据库初始化代码从中间件移至全局作用域,确保应用启动时立即初始化
- 保持数据库连接状态检查,避免重复初始化
- 移除中间件中的初始化逻辑,优化请求处理流程
yourname 1 месяц назад
Родитель
Сommit
65755e9caf
1 измененных файлов с 18 добавлено и 16 удалено
  1. 18 16
      packages/server/src/index.ts

+ 18 - 16
packages/server/src/index.ts

@@ -23,6 +23,24 @@ import { MerchantMt } from '@d8d/merchant-module-mt'
 import { OrderMt, OrderGoodsMt, OrderRefundMt } from '@d8d/orders-module-mt'
 import { SupplierMt } from '@d8d/supplier-module-mt'
 
+initializeDataSource([
+  // 已实现的包实体
+  UserEntityMt, RoleMt, FileMt,
+  TenantEntityMt,
+  AreaEntityMt, PaymentMtEntity,
+  Advertisement, AdvertisementType,
+  DeliveryAddressMt,
+  GoodsMt, GoodsCategoryMt,
+  MerchantMt,
+  OrderMt, OrderGoodsMt, OrderRefundMt,
+  SupplierMt, SystemConfigMt
+])
+
+if(!AppDataSource || !AppDataSource.isInitialized) {
+  await AppDataSource.initialize();
+  console.log('数据库初始化完成')
+}
+
 const app = new Hono();
 const api = new OpenAPIHono<AuthContext>()
 
@@ -36,22 +54,6 @@ api.use('/api/v1/*', async (_, next) => {
 
 // 数据库初始化中间件
 api.use('/api/v1/*', async (c, next) => {
-  if(!AppDataSource || !AppDataSource.isInitialized) {
-    initializeDataSource([
-      // 已实现的包实体
-      UserEntityMt, RoleMt, FileMt,
-      TenantEntityMt,
-      AreaEntityMt, PaymentMtEntity,
-      Advertisement, AdvertisementType,
-      DeliveryAddressMt,
-      GoodsMt, GoodsCategoryMt,
-      MerchantMt,
-      OrderMt, OrderGoodsMt, OrderRefundMt,
-      SupplierMt, SystemConfigMt
-    ])
-    await AppDataSource.initialize();
-    console.log('数据库初始化完成')
-  }
   
   await next();
 })