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
- 克隆项目
git clone https://github.com/chencjfeng/manage-system-server.git
cd manage-system-server- 安装依赖
npm install- 配置环境 复制并修改配置文件:
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"
}
}- 数据库初始化
# 运行数据库迁移
npm run typeorm:run- 启动服务
# 开发模式(热重载)
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 # 项目配置
| 接口 | 方法 | 路径 | 描述 |
|---|---|---|---|
| 用户登录 | 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-
数据库连接失败
- 检查 MySQL 服务是否启动
- 验证数据库配置信息是否正确
-
Redis 连接失败
- 检查 Redis 服务是否启动
- 验证 Redis 配置信息
-
端口占用
- 修改配置文件中的端口号
- 检查是否有其他进程占用端口
项目日志存储在配置的日志目录中,可通过以下方式查看:
# 查看应用日志
tail -f /var/log/node-log/app.log
# 查看错误日志
tail -f /var/log/node-log/error.log我们欢迎任何形式的贡献!请遵循以下步骤:
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 遵循现有的代码风格
- 添加适当的注释和文档
- 确保所有测试通过
- 更新 README.md 以反映更改
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。
- 作者:ChenJF
- 邮箱:chencjfeng@163.com
- 项目地址:https://github.com/chencjfeng/manage-system-server
感谢所有为这个项目做出贡献的开发者!