You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
3 months ago | |
|---|---|---|
| .. | ||
| init-scripts | 3 months ago | |
| prisma | 3 months ago | |
| src | 3 months ago | |
| .dockerignore | 3 months ago | |
| .env.docker | 3 months ago | |
| .env.example | 3 months ago | |
| .env.production | 3 months ago | |
| .eslintrc.js | 3 months ago | |
| .gitignore | 3 months ago | |
| DOCKER_FILES.md | 3 months ago | |
| DOCKER_QUICKREF.md | 3 months ago | |
| DOCKER_README.md | 3 months ago | |
| DOCKER_SYNC.md | 3 months ago | |
| Dockerfile | 3 months ago | |
| README.md | 3 months ago | |
| README_DOCKER_FULL.md | 3 months ago | |
| STARTUP_GUIDE.md | 3 months ago | |
| dev-start.bat | 3 months ago | |
| dev-start.sh | 3 months ago | |
| docker-compose.db-only.yml | 3 months ago | |
| docker-compose.dev.yml | 3 months ago | |
| docker-compose.yml | 3 months ago | |
| docker-start.bat | 3 months ago | |
| docker-start.sh | 3 months ago | |
| package-lock.json | 3 months ago | |
| package.json | 3 months ago | |
| start-all.bat | 3 months ago | |
| start-all.sh | 3 months ago | |
| start-db.bat | 3 months ago | |
| start-db.sh | 3 months ago | |
| stop-db.bat | 3 months ago | |
| stop-db.sh | 3 months ago | |
| tsconfig.json | 3 months ago | |
| verify-docker.js | 3 months ago | |
README.md
A股智投分析平台 - 后端服务
技术栈
- Node.js 20.x LTS
- Express 4.x
- TypeScript 5.x
- Prisma ORM
- MySQL 8.0
- Redis 7
- Socket.io (WebSocket)
- Winston (日志)
快速开始
1. 安装依赖
cd backend
npm install
2. 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库连接等信息
3. 数据库迁移
# 生成 Prisma Client
npx prisma generate
# 执行数据库迁移
npx prisma migrate dev --name init
# 导入种子数据
npx prisma db seed
4. 启动开发服务器
npm run dev
服务器将在 http://localhost:3000 启动
5. 生产部署
# 构建
npm run build
# 启动
npm start
Docker 部署
使用 Docker Compose
# 启动所有服务
docker-compose up -d
# 查看日志
docker-compose logs -f app
# 停止服务
docker-compose down
单独构建镜像
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 |
开发计划
- 基础架构搭建
- 数据库模型设计
- API接口实现
- WebSocket服务
- 数据同步服务
- Docker部署
- 单元测试
- 性能优化
- 监控告警