# A股智投分析平台 - 后端服务 ## 技术栈 - Node.js 20.x LTS - Express 4.x - TypeScript 5.x - Prisma ORM - MySQL 8.0 - Redis 7 - Socket.io (WebSocket) - Winston (日志) ## 快速开始 ### 1. 安装依赖 ```bash cd backend npm install ``` ### 2. 配置环境变量 ```bash cp .env.example .env # 编辑 .env 文件,配置数据库连接等信息 ``` ### 3. 数据库迁移 ```bash # 生成 Prisma Client npx prisma generate # 执行数据库迁移 npx prisma migrate dev --name init # 导入种子数据 npx prisma db seed ``` ### 4. 启动开发服务器 ```bash npm run dev ``` 服务器将在 http://localhost:3000 启动 ### 5. 生产部署 ```bash # 构建 npm run build # 启动 npm start ``` ## Docker 部署 ### 使用 Docker Compose ```bash # 启动所有服务 docker-compose up -d # 查看日志 docker-compose logs -f app # 停止服务 docker-compose down ``` ### 单独构建镜像 ```bash docker build -t aguzhitou-backend . docker run -p 3000:3000 --env-file .env aguzhitou-backend ``` ## API 文档 启动服务器后访问: http://localhost:3000/api/v1/health 详细 API 文档参考 `docs/04-API接口文档.md` ## 项目结构 ``` backend/ ├── src/ │ ├── config/ # 配置文件 │ ├── controllers/ # 控制器 │ ├── services/ # 业务逻辑 │ ├── routes/ # 路由定义 │ ├── middleware/ # 中间件 │ ├── utils/ # 工具函数 │ ├── websocket/ # WebSocket服务 │ ├── jobs/ # 定时任务 │ ├── types/ # 类型定义 │ └── app.ts # 应用入口 ├── prisma/ │ ├── schema.prisma # 数据库模型 │ └── seed.ts # 种子数据 ├── docker-compose.yml # Docker编排 ├── Dockerfile # Docker镜像 └── package.json ``` ## 主要功能 - 市场数据接口(指数、涨跌统计、分布) - 版块数据接口(列表、详情、排名、K线) - 股票数据接口(搜索、详情、K线、新高新低) - 用户系统(注册、登录、自选股) - WebSocket 实时数据推送 - 定时数据同步任务 ## 环境变量 | 变量名 | 说明 | 默认值 | |-------|------|-------| | PORT | 服务器端口 | 3000 | | DATABASE_URL | MySQL连接URL | - | | REDIS_URL | Redis连接URL | redis://localhost:6379 | | JWT_SECRET | JWT密钥 | - | | JWT_EXPIRES_IN | JWT过期时间 | 7d | | AKSHARE_URL | AKShare服务地址 | http://localhost:8000 | | LOG_LEVEL | 日志级别 | info | ## 开发计划 - [x] 基础架构搭建 - [x] 数据库模型设计 - [x] API接口实现 - [x] WebSocket服务 - [x] 数据同步服务 - [x] Docker部署 - [ ] 单元测试 - [ ] 性能优化 - [ ] 监控告警