Skip to content

chencjfeng/manage-system-server

Repository files navigation

Manage System Server

manage-system-server 是一个面向企业级应用的高性能、高可用的后端管理系统解决方案。基于现代化的技术栈构建,采用 Node.js + Koa + TypeScript + TypeORM 的架构组合,为复杂的业务场景提供稳定、安全、可扩展的后端服务支撑。

🏢 企业级特性

  • 微服务就绪架构:采用分层设计和模块化架构,支持快速扩展为微服务体系
  • 多租户支持:内置多租户数据隔离机制,满足 SaaS 应用场景需求
  • 高并发处理:基于 Node.js 非阻塞 I/O 模型,支持大规模并发请求处理
  • 分布式部署:支持集群部署和负载均衡,确保系统高可用性
  • 安全合规:完整的身份认证、权限控制和数据加密机制,符合企业安全标准

✨ 特性

  • 🚀 高性能架构:基于 Koa 框架,充分利用 Node.js 非阻塞 I/O 特性
  • 🔒 安全认证:完整的用户认证和权限控制系统
  • 📊 数据持久化:使用 TypeORM 支持 MySQL 数据库,提供数据迁移功能
  • ⚡ 缓存优化:集成 Redis 缓存,提升系统响应速度
  • 🧩 模块化设计:清晰的代码结构,易于维护和扩展
  • 🔧 开发友好:完整的 TypeScript 支持,ESLint + Prettier 代码规范
  • 📚 RESTful API:标准的 RESTful 接口设计

🛠️ 技术栈

技术 版本 说明
Node.js >= 16.20.0 运行时环境
TypeScript 5.7.2 编程语言
Koa ^2.15.0 Web 框架
TypeORM 0.3.20 ORM 框架
MySQL >= 5.7 数据库
Redis >= 6.0 缓存服务
routing-controllers ^0.10.4 路由控制器
class-validator ^0.14.1 数据验证

📦 快速开始

环境要求

  • Node.js >= 16.20.0
  • MySQL >= 5.7
  • Redis >= 6.0

安装步骤

  1. 克隆项目
git clone https://github.com/chencjfeng/manage-system-server.git
cd manage-system-server
  1. 安装依赖
npm install
  1. 配置环境 复制并修改配置文件:
cp src/config/conf.json src/config/conf.json.local

编辑 src/config/conf.json.local,配置数据库和 Redis 连接信息:

{
  "mode": "dev",
  "port": 9000,
  "uploadTmpDir": "/var/tmp/upload-tmp",
  "logDir": "/var/log/node-log",
  "dbConfig": {
    "host": "127.0.0.1",
    "port": 3306,
    "username": "your_db_username",
    "password": "your_db_password",
    "database": "node_server"
  },
  "redisConfig": {
    "host": "127.0.0.1",
    "port": 6379,
    "username": "default",
    "password": "your_redis_password"
  }
}
  1. 数据库初始化
# 运行数据库迁移
npm run typeorm:run
  1. 启动服务
# 开发模式(热重载)
npm run dev

# 生产模式
npm run start

服务启动后,访问:http://localhost:9000

📁 项目结构

manage-system-server/
├── src/                    # 源代码目录
│   ├── app/                # 应用核心模块
│   │   ├── controllers/    # 控制器层
│   │   ├── entity/         # 数据实体
│   │   ├── service/        # 业务服务层
│   │   └── req-validate/   # 请求验证
│   ├── config/             # 配置文件
│   ├── constant/           # 常量定义
│   ├── decorator/          # 装饰器
│   ├── enum/              # 枚举类型
│   ├── middles/           # 中间件
│   ├── sql/               # 数据库迁移脚本
│   └── tools/             # 工具类
├── build-script/          # 构建脚本
└── package.json          # 项目配置

🔌 API 接口

认证接口

接口 方法 路径 描述
用户登录 POST /api/v1/auth/login 用户登录认证
用户登出 POST /api/v1/auth/loginOut 用户登出
修改密码 POST /api/v1/auth/changePwd 修改用户密码

用户管理

接口 方法 路径 描述
用户列表 POST /api/v1/user/list 获取用户列表
用户详情 POST /api/v1/user/detail 获取用户详情
添加用户 POST /api/v1/user/add 添加新用户
编辑用户 POST /api/v1/user/edit 编辑用户信息
删除用户 POST /api/v1/user/del 删除用户
用户状态 POST /api/v1/user/status 修改用户状态
修改密码 POST /api/v1/user/password 修改用户密码

角色管理

接口 方法 路径 描述
角色列表 POST /api/v1/role/list 获取角色列表
角色详情 POST /api/v1/role/detail 获取角色详情
添加角色 POST /api/v1/role/add 添加新角色
编辑角色 POST /api/v1/role/edit 编辑角色信息
删除角色 POST /api/v1/role/del 删除角色
权限列表 POST /api/v1/role/permissionList 获取权限列表

资源管理

接口 方法 路径 描述
资源列表 POST /api/v1/resource/list 获取资源列表
资源详情 POST /api/v1/resource/detail 获取资源详情
添加资源 POST /api/v1/resource/add 添加新资源
编辑资源 POST /api/v1/resource/edit 编辑资源信息
删除资源 POST /api/v1/resource/del 删除资源

⚙️ 配置说明

环境变量

项目支持通过环境变量覆盖配置文件:

# 数据库配置
export DB_USERNAME=your_username
export DB_PASSWORD=your_password

# 服务端口
export PORT=9000

配置文件

主要配置文件位于 src/config/conf.json

  • mode: 运行模式(dev/test/prod)
  • port: 服务端口
  • uploadTmpDir: 文件上传临时目录
  • logDir: 日志存储目录
  • dbConfig: 数据库配置
  • redisConfig: Redis 配置

🚀 开发指南

代码规范

项目使用 ESLint 和 Prettier 进行代码规范检查:

# 代码检查
npm run lint

# 代码格式化
npm run prettier

数据库迁移

# 创建新的迁移文件
npm run typeorm:create --name=YourMigrationName

# 运行所有迁移
npm run typeorm:run

# 回滚迁移
npm run typeorm:revert

# 按版本运行迁移
npm run typeorm:run:version --version=1.0.0

构建部署

# 构建项目(包含代码混淆)
npm run build

# 生产环境运行
npm run start

🐛 故障排除

常见问题

  1. 数据库连接失败

    • 检查 MySQL 服务是否启动
    • 验证数据库配置信息是否正确
  2. Redis 连接失败

    • 检查 Redis 服务是否启动
    • 验证 Redis 配置信息
  3. 端口占用

    • 修改配置文件中的端口号
    • 检查是否有其他进程占用端口

日志查看

项目日志存储在配置的日志目录中,可通过以下方式查看:

# 查看应用日志
tail -f /var/log/node-log/app.log

# 查看错误日志
tail -f /var/log/node-log/error.log

🤝 贡献指南

我们欢迎任何形式的贡献!请遵循以下步骤:

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

开发规范

  • 遵循现有的代码风格
  • 添加适当的注释和文档
  • 确保所有测试通过
  • 更新 README.md 以反映更改

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📞 联系方式

🙏 致谢

感谢所有为这个项目做出贡献的开发者!

About

管理系统服务

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors