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.5 KiB
3.5 KiB
后端启动指南
环境要求
- Node.js 20.x LTS
- MySQL 8.0+
- Redis 7.x (可选,未安装时会自动使用内存缓存)
快速启动步骤
1. 安装依赖
cd app/backend
npm install
2. 数据库配置(已配置)
数据库连接信息已配置在 .env 文件中:
DATABASE_URL=mysql://root:1qazse42W3@192.168.0.222:3306/aguzhitou
注意:这是测试数据库连接,数据库和表结构已创建完成。
3. 生成 Prisma Client
npx prisma generate
4. 启动开发服务器
npm run dev
服务器将在 http://localhost:3000 启动
验证启动
1. 健康检查接口
curl http://localhost:3000/api/v1/health
预期响应:
{
"code": 200,
"message": "success",
"data": {
"status": "healthy",
"timestamp": "2024-01-15T10:00:00.000Z"
}
}
2. 测试市场数据接口
curl http://localhost:3000/api/v1/market/indices
常见问题
问题1:数据库连接失败
错误信息:
Database connection failed: Error: Can't reach database server
解决方案:
- 确认数据库服务器 192.168.0.222:3306 可访问
- 检查用户名密码是否正确
- 确认数据库
aguzhitou已创建
测试连接:
mysql -h 192.168.0.222 -P 3306 -u root -p -e "SHOW DATABASES;"
# 密码:1qazse42W3
问题2:Redis 连接失败
错误信息:
Redis connection failed
解决方案:
- 这是可选依赖,应用会自动降级到内存缓存
- 如需使用 Redis,请安装并启动 Redis 服务:
# Docker 方式 docker run -d -p 6379:6379 redis:7-alpine
问题3:端口被占用
错误信息:
Error: listen EADDRINUSE: address already in use :::3000
解决方案:
# 查看占用进程
lsof -i :3000
# 或修改 .env 中的端口
PORT=3001
问题4:Prisma Client 未生成
错误信息:
Error: @prisma/client did not initialize yet
解决方案:
npx prisma generate
目录结构
app/backend/
├── src/
│ ├── config/ # 配置文件
│ │ ├── database.ts # 数据库连接
│ │ ├── redis.ts # Redis连接(带降级)
│ │ └── index.ts # 环境变量配置
│ ├── controllers/ # 控制器
│ ├── services/ # 业务逻辑
│ ├── routes/ # 路由
│ ├── middleware/ # 中间件
│ ├── utils/ # 工具函数
│ ├── websocket/ # WebSocket服务
│ ├── jobs/ # 定时任务
│ └── app.ts # 应用入口
├── prisma/
│ └── schema.prisma # 数据库模型
├── .env # 环境变量(已配置)
└── package.json
API 文档
启动后访问:http://localhost:3000/api/v1/health
详细 API 文档:app/docs/04-API接口文档.md
生产环境部署
1. 构建
npm run build
2. 启动生产服务
npm start
3. Docker 部署
docker-compose up -d
日志查看
日志文件位置:./logs/
# 实时查看日志
tail -f logs/combined-$(date +%Y-%m-%d).log
# 查看错误日志
tail -f logs/error-$(date +%Y-%m-%d).log
联系支持
如有问题,请检查:
- 数据库连接配置
- 日志文件中的错误信息
- 确保所有依赖已正确安装