# user-admin **Repository Path**: mzzhref/user-admin ## Basic Information - **Project Name**: user-admin - **Description**: koa2项目 - **Primary Language**: NodeJS - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 用户管理后台系统 ## 项目简介 这是一个基于Koa框架的用户管理后台系统,主要实现以下功能: - 用户信息管理(创建/删除/更新/查询) - 数据验证与异常处理 - 响应式数据处理 - 表格布局与样式管理 - 环境配置与日志记录 ## 技术架构 - **框架**: Koa2 + ES6+ - **数据库**: Sequelize ORM(支持MySQL等) - **核心模式**: MVC架构 - **前端**: Element Plus UI组件库 - **响应式系统**: Vue3 + Element Plus - **路由管理**: Vue Router - **状态管理**: Pinia - **权限管理**: 基于角色的访问控制(RBAC) - **数据加密**: bcrypt 密码加密存储 - **接口文档**: Swagger - **部署**: Nginx + PM2 ## 工作流程示意图 ```bash 客户端 → router → Controller → Service → Model(mysql) → Service → Controller → 客户端 ``` ## 安装依赖 ```bash npm install ``` ## 启动服务 ```bash npm run dev ``` ## 初始化数据库 ```bash #仅修改表结构,原数据尽量保留 npm run db_init #先删除数据库中已存在的同名表,然后根据模型定义重新创建表结构 npm run db_init --force ``` ## 生成目录结构 ```bash npm run mddir or npm run catalogue ``` ## 项目优化说明 详细优化内容请查看 [优化说明.md](./doc/优化说明.md) 更多文档请查看 [doc](./doc/) 目录。 ### 已完成的优化 1. **代码现代化** ✅ - 更新 `bin/www` 使用现代 ES6+ 语法 - 添加 JSDoc 注释 - 改进代码风格一致性 2. **安全性增强** ✅ - 添加 CORS 跨域中间件 - 添加安全头中间件(XSS 防护、点击劫持防护等) - 添加请求限流中间件(防止 DDoS 和 API 滥用) - bcrypt 密码加密功能 - 所有敏感配置从环境变量读取 3. **性能优化** ✅ - 添加响应压缩中间件(gzip/deflate) - 优化数据库连接池配置 - 优化中间件执行顺序 4. **代码质量工具** ✅ - 添加 ESLint 配置 - 添加 Prettier 配置 - 新增代码检查和格式化脚本 5. **开发体验优化** ✅ - 添加健康检查端点 (`/api/health`) - 优化日志记录(过滤静态资源) - 改进错误处理和响应格式 - 优化 `.gitignore` 6. **代码结构优化** - 统一的模型加载器 (`src/models/index.js`) - 分页参数验证工具 (`src/utils/pagination.js`) - 密码加密工具 (`src/utils/password.js`) - 统一错误处理逻辑 ### 使用说明 1. **安装依赖** ```bash npm install ``` 如需使用 ESLint 和 Prettier(可选): ```bash npm install --save-dev eslint prettier ``` 2. **代码检查与格式化** ```bash # 检查代码规范 npm run lint # 自动修复代码规范问题 npm run lint:fix # 格式化代码 npm run format ``` 3. **健康检查** ```bash # 基础健康检查 curl http://localhost:3000/api/health # 详细健康检查(包含数据库连接状态) curl http://localhost:3000/api/health/detailed ``` 4. **环境变量配置** 确保 `.env` 文件中包含以下配置: ```env # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_NAME=your_database DB_USERNAME=your_username DB_PASSWORD=your_password # 应用配置 NODE_ENV=development PORT=3000 # CORS 配置(可选) ALLOWED_ORIGINS=http://localhost:3000 # 请求限流配置(可选) RATE_LIMIT_MAX=100 ENABLE_RATE_LIMIT=false ``` 5. **安全特性** - 密码自动加密存储(bcrypt) - CORS 跨域保护 - 安全头防护(XSS、点击劫持等) - 请求限流(生产环境默认启用) - 响应压缩(节省带宽) 6. **数据库初始化** ```bash npm run db_init ``` 使用标准的 require 方式加载模型,不再使用已废弃的 `sequelize.import`