95 lines
1.9 KiB
Markdown
95 lines
1.9 KiB
Markdown
|
|
# 野成长 (Wild Growth) 后端API
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **运行环境**: Node.js 24+
|
|||
|
|
- **框架**: Express.js
|
|||
|
|
- **语言**: TypeScript
|
|||
|
|
- **数据库**: PostgreSQL
|
|||
|
|
- **ORM**: Prisma
|
|||
|
|
- **认证**: JWT
|
|||
|
|
- **日志**: Winston
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
backend/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── controllers/ # 控制器(处理请求)
|
|||
|
|
│ ├── services/ # 业务逻辑
|
|||
|
|
│ ├── models/ # 数据模型
|
|||
|
|
│ ├── middleware/ # 中间件
|
|||
|
|
│ ├── routes/ # 路由定义
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ ├── types/ # TypeScript类型定义
|
|||
|
|
│ └── index.ts # 入口文件
|
|||
|
|
├── prisma/
|
|||
|
|
│ └── schema.prisma # 数据库模型定义
|
|||
|
|
├── logs/ # 日志文件
|
|||
|
|
└── dist/ # 编译后的JavaScript文件
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 快速开始
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 配置环境变量
|
|||
|
|
|
|||
|
|
复制 `.env.example` 为 `.env` 并填写配置:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cp .env.example .env
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. 设置数据库
|
|||
|
|
|
|||
|
|
确保PostgreSQL已安装并运行,然后:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 生成Prisma Client
|
|||
|
|
npm run prisma:generate
|
|||
|
|
|
|||
|
|
# 运行数据库迁移
|
|||
|
|
npm run prisma:migrate
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 启动开发服务器
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
服务器将在 `http://localhost:3000` 启动
|
|||
|
|
|
|||
|
|
## 开发命令
|
|||
|
|
|
|||
|
|
- `npm run dev` - 启动开发服务器(热重载)
|
|||
|
|
- `npm run build` - 编译TypeScript
|
|||
|
|
- `npm run start` - 运行编译后的代码
|
|||
|
|
- `npm run prisma:generate` - 生成Prisma Client
|
|||
|
|
- `npm run prisma:migrate` - 运行数据库迁移
|
|||
|
|
- `npm run prisma:studio` - 打开Prisma Studio(数据库可视化工具)
|
|||
|
|
|
|||
|
|
## API文档
|
|||
|
|
|
|||
|
|
详见 `BACKEND_DEVELOPMENT_PLAN.md`
|
|||
|
|
|
|||
|
|
## 环境变量说明
|
|||
|
|
|
|||
|
|
- `PORT`: 服务器端口(默认3000)
|
|||
|
|
- `NODE_ENV`: 环境(development/production)
|
|||
|
|
- `DATABASE_URL`: PostgreSQL连接字符串
|
|||
|
|
- `JWT_SECRET`: JWT密钥
|
|||
|
|
- `JWT_EXPIRES_IN`: JWT过期时间
|
|||
|
|
- `SMS_*`: 短信服务配置
|
|||
|
|
- `APPLE_*`: Apple登录配置
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|