# 结伴客后端服务 基于 Node.js + Express + MongoDB 的后端 API 服务。 ## 功能特性 - ✅ 用户认证系统(JWT) - ✅ 微信登录集成 - ✅ RESTful API 设计 - ✅ 数据验证和清洗 - ✅ 错误处理中间件 - ✅ 请求频率限制 - ✅ 安全防护(CORS, Helmet, XSS防护) - ✅ MongoDB 数据库集成 - ✅ 环境配置管理 ## 快速开始 ### 环境要求 - Node.js 16+ - MongoDB 4.4+ - npm 或 yarn ### 安装依赖 ```bash cd backend npm install ``` ### 环境配置 1. 复制环境变量文件: ```bash cp .env.example .env ``` 2. 编辑 `.env` 文件,配置你的环境变量: ```env MONGODB_URI=mongodb://mongodb.jiebanke.com:27017/jiebanke JWT_SECRET=your-super-secret-jwt-key ``` ### 启动开发服务器 ```bash # 开发模式(带热重载) npm run dev # 生产模式 npm start # 调试模式 npm run debug ``` ### 测试 ```bash # 运行测试 npm test # 运行测试并生成覆盖率报告 npm run test:coverage # 运行端到端测试 npm run test:e2e ``` ## API 文档 ### 认证接口 #### 用户注册 ``` POST /api/v1/auth/register Content-Type: application/json { "username": "testuser", "password": "password123", "nickname": "测试用户", "email": "test@jiebanke.com", "phone": "13800138000" } ``` #### 用户登录 ``` POST /api/v1/auth/login Content-Type: application/json { "username": "testuser", "password": "password123" } ``` #### 获取当前用户信息 ``` GET /api/v1/auth/me Authorization: Bearer ``` #### 微信登录 ``` POST /api/v1/auth/wechat-login Content-Type: application/json { "code": "微信授权码", "userInfo": { "nickName": "微信用户", "avatarUrl": "https://...", "gender": 1 } } ``` ## 项目结构 ``` backend/ ├── src/ │ ├── controllers/ # 控制器层 │ ├── models/ # 数据模型 │ ├── routes/ # 路由定义 │ ├── middleware/ # 中间件 │ ├── utils/ # 工具函数 │ ├── app.js # Express应用配置 │ └── server.js # 服务器入口 ├── tests/ # 测试文件 ├── .env.example # 环境变量示例 ├── package.json └── README.md ``` ## 数据库设计 ### 用户表 (users) - 用户基本信息 - 认证信息 - 统计信息 - 第三方登录信息 ## 开发指南 ### 添加新功能 1. 创建数据模型 (`src/models/`) 2. 创建控制器 (`src/controllers/`) 3. 创建路由 (`src/routes/`) 4. 在 `app.js` 中注册路由 ### 代码规范 - 使用 ESLint 进行代码检查 - 遵循 JavaScript Standard Style - 使用 async/await 处理异步操作 - 使用错误处理中间件 ## 部署 ### Docker 部署 ```bash # 构建镜像 docker build -t jiebanke-backend . # 运行容器 docker run -p 3000:3000 --env-file .env jiebanke-backend ``` ### PM2 部署 ```bash npm install -g pm2 pm2 start ecosystem.config.js ``` ## 故障排除 ### 常见问题 1. **MongoDB 连接失败** - 检查 MongoDB 服务是否运行 - 检查连接字符串是否正确 2. **JWT 验证失败** - 检查 JWT_SECRET 环境变量 3. **CORS 错误** - 检查前端域名是否在 CORS 白名单中 ## 技术支持 如有问题,请查看日志文件或联系开发团队。 ## 许可证 MIT License