# 后端功能文档

## 项目概述

后端项目是基于Node.js的API接口服务，为微信小程序前端和Web后台管理提供数据交互支持。

## 技术栈

- Node.js 22+
- Express.js
- Pocketbase (数据库)
- TypeScript
- JWT (认证)
- dotenv (环境变量管理)

## 项目结构

```
back-end/
├── src/
│   ├── controllers/    # 控制器
│   ├── routes/         # 路由
│   ├── services/       # 业务逻辑
│   ├── models/         # 数据模型
│   ├── middlewares/    # 中间件
│   ├── utils/          # 工具函数
│   └── index.js        # 入口文件
├── spec/               # OpenAPI规范
├── tests/              # 测试文件
├── scripts/            # 脚本文件
├── .env                # 环境变量
└── package.json        # 项目配置
```

## 核心功能模块

### 1. 认证模块
- 用户登录/注册
- JWT token生成与验证
- 权限控制

### 2. 用户管理
- 用户信息管理
- 密码重置
- 用户状态管理

### 3. 数据管理
- 数据CRUD操作
- 数据验证
- 数据统计

### 4. AI交互模块
- 与AI网关的集成
- RAG系统对接
- 智能问答

### 5. 视频服务
- 视频流处理
- 视频存储
- 视频转码

## 开发指南

### 环境搭建

1. 安装依赖
```bash
npm install
```

2. 启动开发服务器
```bash
npm run dev
```

3. 运行测试
```bash
npm run test
```

### 代码规范

- 使用ESLint进行代码检查
- 遵循RESTful API设计规范
- 错误处理统一化
- 日志记录

### 路由设计

路由配置位于 `src/routes/`，支持RESTful API设计。

### 数据库操作

使用Pocketbase作为数据库，提供轻量级的数据存储解决方案。通过Pocketbase API进行数据操作，支持CRUD操作和实时数据同步。

### 环境变量

环境变量配置位于 `.env` 文件，包括：
- 服务器端口
- Pocketbase API URL
- Pocketbase认证信息
- JWT密钥
- 其他配置参数

## API设计规范

### 响应格式

```json
{
  "statusCode": 200,
  "message": "success",
  "data": {}
}
```

### 错误处理

```json
{
  "statusCode": 400,
  "message": "错误信息",
  "data": null
}
```

### 状态码定义

- 200: 成功
- 400: 请求错误
- 401: 未授权
- 403: 禁止访问
- 404: 资源不存在
- 500: 服务器内部错误

## 中间件

- 认证中间件
- 日志中间件
- 错误处理中间件
- CORS中间件

## 安全措施

- JWT认证
- 密码加密
- 输入验证
- 防止SQL注入
- 防止XSS攻击

## 部署说明

详见 [部署文档](deployment.md)。

