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