feat: 初始化项目结构并添加核心功能模块
- 新增文档模板和导航结构 - 实现服务器基础API路由和控制器 - 添加扩展插件配置和前端框架 - 引入多租户和权限管理模块 - 集成日志和数据库配置 - 添加核心业务模型和类型定义
This commit is contained in:
129
server/src/index.ts
Normal file
129
server/src/index.ts
Normal file
@@ -0,0 +1,129 @@
|
||||
import cors from 'cors';
|
||||
import dotenv from 'dotenv';
|
||||
import express from 'express';
|
||||
import { DomainBootstrap } from './core/runtime/DomainBootstrap';
|
||||
import { logger } from './utils/logger';
|
||||
|
||||
// API Routes
|
||||
import aiRoutes from './api/routes/ai';
|
||||
import arbitrageRoutes from './api/routes/arbitrage';
|
||||
import auditRoutes from './api/routes/audit';
|
||||
import authRoutes from './api/routes/auth';
|
||||
import billingRoutes from './api/routes/billing';
|
||||
import bizRoutes from './api/routes/biz';
|
||||
import chatbotRoutes from './api/routes/chatbot';
|
||||
import commandRoutes from './api/routes/command';
|
||||
import configRoutes from './api/routes/config';
|
||||
import liteConsoleRoutes from './api/routes/console_lite';
|
||||
import creativeRoutes from './api/routes/creative';
|
||||
import customerRoutes from './api/routes/customer';
|
||||
import financeRoutes from './api/routes/finance';
|
||||
import governanceRoutes from './api/routes/governance';
|
||||
import marketingRoutes from './api/routes/marketing';
|
||||
import nodeRoutes from './api/routes/node';
|
||||
import orderRoutes from './api/routes/order';
|
||||
import productRoutes from './api/routes/product';
|
||||
import publishRoutes from './api/routes/publish';
|
||||
import reportRoutes from './api/routes/report';
|
||||
import sovereigntyRoutes from './api/routes/sovereignty';
|
||||
import strategyRoutes from './api/routes/strategy';
|
||||
import syncRoutes from './api/routes/sync';
|
||||
import telemetryRoutes from './api/routes/telemetry';
|
||||
import tenantRoutes from './api/routes/tenant';
|
||||
import traceRoutes from './api/routes/trace';
|
||||
import tradeRoutes from './api/routes/trade';
|
||||
import vaultRoutes from './api/routes/vault';
|
||||
import webhookRoutes from './api/routes/webhook';
|
||||
|
||||
// Platform Connectors
|
||||
import { AliExpressConnector } from './core/connectors/AliExpressConnector';
|
||||
import { AmazonConnector } from './core/connectors/AmazonConnector';
|
||||
import { ConnectorBus } from './core/connectors/IPlatformConnector';
|
||||
import { ShopeeConnector } from './core/connectors/ShopeeConnector';
|
||||
import { ShopifyConnector } from './core/connectors/ShopifyConnector';
|
||||
import { TikTokConnector } from './core/connectors/TikTokConnector';
|
||||
|
||||
// Guards
|
||||
import { mtlsGuard } from './core/guards/mtls.guard';
|
||||
import { slaGuard } from './core/guards/sla.guard';
|
||||
import { requireTraceContext } from './core/guards/trace-context.guard';
|
||||
|
||||
// Workers
|
||||
import { startAuditWorker } from './services/AuditWorker';
|
||||
import { CrawlerWorker } from './workers/CrawlerWorker';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
const app = express();
|
||||
const PORT = process.env.PORT || 3003;
|
||||
|
||||
// Global Middleware
|
||||
app.use(cors());
|
||||
app.use(express.json());
|
||||
app.use(requireTraceContext);
|
||||
app.use(mtlsGuard);
|
||||
app.use(slaGuard);
|
||||
|
||||
// API Routes (V1)
|
||||
app.use('/api/v1/auth', authRoutes);
|
||||
app.use('/api/v1/billing', billingRoutes);
|
||||
app.use('/api/v1/arbitrage', arbitrageRoutes);
|
||||
app.use('/api/v1/orders', orderRoutes);
|
||||
app.use('/api/v1/biz', bizRoutes);
|
||||
app.use('/api/v1/creative', creativeRoutes);
|
||||
app.use('/api/v1/customer', customerRoutes);
|
||||
app.use('/api/v1/report', reportRoutes);
|
||||
app.use('/api/v1/lite', liteConsoleRoutes);
|
||||
app.use('/api/v1/tenant', tenantRoutes);
|
||||
app.use('/api/v1/product', productRoutes);
|
||||
app.use('/api/v1/publish', publishRoutes);
|
||||
app.use('/api/v1/trade', tradeRoutes);
|
||||
app.use('/api/v1/finance', financeRoutes);
|
||||
app.use('/api/v1/strategy', strategyRoutes);
|
||||
app.use('/api/v1/sovereignty', sovereigntyRoutes);
|
||||
app.use('/api/v1/governance', governanceRoutes);
|
||||
app.use('/api/v1/audit', auditRoutes);
|
||||
app.use('/api/v1/trace', traceRoutes);
|
||||
app.use('/api/v1/sync', syncRoutes);
|
||||
app.use('/api/v1/config', configRoutes);
|
||||
app.use('/api/v1/vault', vaultRoutes);
|
||||
app.use('/api/v1/telemetry', telemetryRoutes);
|
||||
app.use('/api/v1/webhook', webhookRoutes);
|
||||
app.use('/api/v1/node', nodeRoutes);
|
||||
app.use('/api/v1/ai', aiRoutes);
|
||||
app.use('/api/v1/chatbot', chatbotRoutes);
|
||||
app.use('/api/v1/command', commandRoutes);
|
||||
app.use('/api/v1/marketing', marketingRoutes);
|
||||
|
||||
// Register Platform Connectors
|
||||
ConnectorBus.register(new TikTokConnector());
|
||||
ConnectorBus.register(new ShopeeConnector());
|
||||
ConnectorBus.register(new ShopifyConnector());
|
||||
ConnectorBus.register(new AmazonConnector());
|
||||
ConnectorBus.register(new AliExpressConnector());
|
||||
|
||||
// Start Background Workers
|
||||
startAuditWorker();
|
||||
CrawlerWorker.init();
|
||||
|
||||
/**
|
||||
* [ARCH_LIGHT_03] 全局启动流 (Global Startup Flow)
|
||||
* @description 使用 DomainBootstrap 统一管理初始化,彻底解决 index.ts 膨胀与重复代码问题。
|
||||
*/
|
||||
async function startServer() {
|
||||
try {
|
||||
// 1. 领域初始化 (含 DB 建表与 AGI 降级检查)
|
||||
await DomainBootstrap.init();
|
||||
|
||||
// 2. 启动 HTTP 服务
|
||||
app.listen(PORT, () => {
|
||||
logger.info(`🚀 Console Server running on http://localhost:${PORT}`);
|
||||
logger.info('✅ All backend services initialized successfully');
|
||||
});
|
||||
} catch (err: any) {
|
||||
logger.error(`❌ Failed to start server: ${err.message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
startServer();
|
||||
Reference in New Issue
Block a user