# nodejs **Repository Path**: EdisonJack/nodejs ## Basic Information - **Project Name**: nodejs - **Description**: 配合管理后台的使用node编写的后端服务项目,需要搭配另外一个react项目完美使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-20 - **Last Updated**: 2025-09-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 后台管理系统 API 服务器 基于 Node.js + Express 的后台管理系统 API 服务器,为 React 前端提供完整的后端支持。 ## 🚀 功能特性 - **用户认证**: JWT Token 认证,支持登录、登出、Token 刷新 - **权限管理**: 基于角色的权限控制 (RBAC) - **用户管理**: 用户的增删改查、状态管理 - **角色管理**: 角色的增删改查、权限分配 - **部门管理**: 部门的增删改查、树形结构 - **仪表盘**: 数据统计、趋势分析、系统监控 - **安全防护**: CORS、限流、输入验证、安全头 - **API 文档**: 完整的 RESTful API 接口 ## 📋 技术栈 - **Node.js**: 服务器运行环境 - **Express**: Web 框架 - **JWT**: 用户认证 - **bcryptjs**: 密码加密 - **express-validator**: 输入验证 - **helmet**: 安全头设置 - **cors**: 跨域处理 - **morgan**: 请求日志 - **express-rate-limit**: 限流保护 ## 🛠️ 安装和运行 ### 1. 安装依赖 ```bash npm install ``` ### 2. 环境配置 复制环境配置文件: ```bash cp env.example .env ``` 修改 `.env` 文件中的配置: ```env # 服务器配置 PORT=3001 NODE_ENV=development # JWT 配置 JWT_SECRET=your-super-secret-jwt-key-change-in-production JWT_EXPIRES_IN=24h # 跨域配置 CORS_ORIGIN=http://localhost:5173 ``` ### 3. 启动服务器 开发模式(自动重启): ```bash npm run dev ``` 生产模式: ```bash npm start ``` ### 4. 健康检查 访问 `http://localhost:3001/api/health` 检查服务器状态。 ## 📚 API 接口文档 ### 认证相关 #### 登录 - **POST** `/api/auth/login` - **请求体**: ```json { "username": "admin", "password": "admin123" } ``` - **响应**: ```json { "success": true, "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "id": 1, "username": "admin", "email": "admin@example.com", "role": "admin", "permissions": ["user:read", "user:write", ...] } }, "message": "登录成功" } ``` #### 获取用户信息 - **GET** `/api/auth/userInfo` - **Headers**: `Authorization: Bearer ` #### 登出 - **POST** `/api/auth/logout` - **Headers**: `Authorization: Bearer ` #### 刷新 Token - **POST** `/api/auth/refresh` - **Headers**: `Authorization: Bearer ` ### 用户管理 #### 获取用户列表 - **GET** `/api/users?page=1&pageSize=10&username=&status=` - **Headers**: `Authorization: Bearer ` #### 获取单个用户 - **GET** `/api/users/:id` - **Headers**: `Authorization: Bearer ` #### 创建用户 - **POST** `/api/users` - **Headers**: `Authorization: Bearer ` - **请求体**: ```json { "username": "newuser", "password": "password123", "email": "newuser@example.com", "phone": "13800138002", "role": "user", "status": "active" } ``` #### 更新用户 - **PUT** `/api/users/:id` - **Headers**: `Authorization: Bearer ` #### 删除用户 - **DELETE** `/api/users/:id` - **Headers**: `Authorization: Bearer ` #### 修改密码 - **PUT** `/api/users/:id/password` - **Headers**: `Authorization: Bearer ` - **请求体**: ```json { "newPassword": "newpassword123" } ``` ### 角色管理 #### 获取角色列表 - **GET** `/api/roles?page=1&pageSize=10&name=` - **Headers**: `Authorization: Bearer ` #### 获取单个角色 - **GET** `/api/roles/:id` - **Headers**: `Authorization: Bearer ` #### 创建角色 - **POST** `/api/roles` - **Headers**: `Authorization: Bearer ` - **请求体**: ```json { "name": "编辑员", "code": "editor", "description": "内容编辑权限", "permissions": ["content:read", "content:write"] } ``` #### 更新角色 - **PUT** `/api/roles/:id` - **Headers**: `Authorization: Bearer ` #### 删除角色 - **DELETE** `/api/roles/:id` - **Headers**: `Authorization: Bearer ` #### 获取权限列表 - **GET** `/api/roles/permissions/list` - **Headers**: `Authorization: Bearer ` ### 部门管理 #### 获取部门列表 - **GET** `/api/departments?page=1&pageSize=10&name=` - **Headers**: `Authorization: Bearer ` #### 获取部门树形结构 - **GET** `/api/departments/tree` - **Headers**: `Authorization: Bearer ` #### 获取单个部门 - **GET** `/api/departments/:id` - **Headers**: `Authorization: Bearer ` #### 创建部门 - **POST** `/api/departments` - **Headers**: `Authorization: Bearer ` - **请求体**: ```json { "name": "市场部", "code": "marketing", "parentId": null, "leader": "王五", "description": "负责市场营销" } ``` #### 更新部门 - **PUT** `/api/departments/:id` - **Headers**: `Authorization: Bearer ` #### 删除部门 - **DELETE** `/api/departments/:id` - **Headers**: `Authorization: Bearer ` #### 获取部门用户 - **GET** `/api/departments/:id/users` - **Headers**: `Authorization: Bearer ` ### 仪表盘 #### 获取概览数据 - **GET** `/api/dashboard/overview` - **Headers**: `Authorization: Bearer ` #### 获取用户增长趋势 - **GET** `/api/dashboard/user-growth?period=7d` - **Headers**: `Authorization: Bearer ` #### 获取用户分布 - **GET** `/api/dashboard/user-distribution` - **Headers**: `Authorization: Bearer ` #### 获取最近活动 - **GET** `/api/dashboard/recent-activities?limit=10` - **Headers**: `Authorization: Bearer ` #### 获取系统性能 - **GET** `/api/dashboard/performance` - **Headers**: `Authorization: Bearer ` #### 获取页面访问统计 - **GET** `/api/dashboard/page-views?period=7d` - **Headers**: `Authorization: Bearer ` ## 🔐 权限系统 ### 权限代码 - `user:read` - 用户查看权限 - `user:write` - 用户管理权限 - `role:read` - 角色查看权限 - `role:write` - 角色管理权限 - `department:read` - 部门查看权限 - `department:write` - 部门管理权限 - `dashboard:read` - 仪表盘查看权限 - `settings:read` - 设置查看权限 - `settings:write` - 设置管理权限 ### 默认用户 - **管理员**: `admin` / `admin123` - **普通用户**: `user1` / `user123` ## 🏗️ 项目结构 ``` admin-api-server/ ├── src/ │ ├── app.js # 主应用文件 │ ├── middleware/ │ │ └── auth.js # 认证中间件 │ ├── models/ │ │ └── data.js # 数据模型 │ ├── routes/ │ │ ├── auth.js # 认证路由 │ │ ├── users.js # 用户管理路由 │ │ ├── roles.js # 角色管理路由 │ │ ├── departments.js # 部门管理路由 │ │ └── dashboard.js # 仪表盘路由 │ └── utils/ │ └── jwt.js # JWT 工具函数 ├── package.json ├── env.example └── README.md ``` ## 🔧 开发指南 ### 添加新的路由 1. 在 `src/routes/` 目录下创建新的路由文件 2. 在 `src/app.js` 中引入并注册路由 3. 添加相应的权限检查 ### 添加新的中间件 1. 在 `src/middleware/` 目录下创建中间件文件 2. 在需要的地方引入并使用 ### 数据持久化 当前使用内存存储,生产环境建议: - 使用 MySQL、PostgreSQL 等关系型数据库 - 使用 Redis 缓存用户会话和热点数据 - 使用 MongoDB 存储日志和统计数据 ## 🚀 部署 ### Docker 部署 ```dockerfile FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3001 CMD ["npm", "start"] ``` ### PM2 部署 ```bash npm install -g pm2 pm2 start src/app.js --name "admin-api" pm2 save pm2 startup ``` ## 📝 注意事项 1. **安全**: 生产环境请修改 JWT_SECRET 和数据库密码 2. **性能**: 建议使用 Redis 缓存和数据库连接池 3. **日志**: 生产环境建议使用专业的日志系统 4. **监控**: 建议集成 APM 工具监控应用性能 5. **备份**: 定期备份数据库和配置文件 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## �� 许可证 MIT License