# ry-node **Repository Path**: li-ping-qssy/ry-node ## Basic Information - **Project Name**: ry-node - **Description**: 将ruoyi的java后台改成了node版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-04-29 - **Last Updated**: 2026-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RuoYi Node 后台管理系统 基于 NestJS + TypeScript + Prisma + MySQL + Redis 的若依后台管理系统 Node.js 版本。 ## 技术栈 - **框架**: [NestJS](https://nestjs.com/) - 渐进式 Node.js 框架 - **语言**: TypeScript - **ORM**: [Prisma](https://www.prisma.io/) - 下一代 Node.js 和 TypeScript ORM - **数据库**: MySQL - **缓存**: Redis - **认证**: JWT (JSON Web Token) - **文档**: Swagger/OpenAPI - **安全**: Helmet, CORS, 限流 ## 功能模块 ### 系统管理 - 用户管理 - 系统用户配置,支持多角色 - 角色管理 - 角色权限分配,数据权限控制 - 菜单管理 - 系统菜单、按钮权限管理 - 部门管理 - 组织机构管理,树形结构 - 岗位管理 - 用户岗位配置 - 字典管理 - 系统常用数据维护 - 参数管理 - 系统动态参数配置 - 通知公告 - 系统通知公告发布 ### 系统监控 - 在线用户 - 当前活跃用户监控 - 定时任务 - 在线任务调度 - 操作日志 - 系统操作记录 - 登录日志 - 用户登录记录 - 服务监控 - CPU、内存、磁盘监控 - 缓存监控 - Redis 缓存监控 ## 项目结构 ``` ruoyi-node-backend/ ├── prisma/ # Prisma 配置 │ ├── schema.prisma # 数据库模型定义 │ └── seed.ts # 初始化数据 ├── src/ │ ├── modules/ # 业务模块 │ │ ├── auth/ # 认证模块 │ │ ├── system/ # 系统管理模块 │ │ │ ├── user/ # 用户管理 │ │ │ ├── role/ # 角色管理 │ │ │ ├── menu/ # 菜单管理 │ │ │ ├── dept/ # 部门管理 │ │ │ ├── post/ # 岗位管理 │ │ │ ├── dict/ # 字典管理 │ │ │ ├── config/ # 参数管理 │ │ │ └── notice/ # 通知公告 │ │ └── monitor/ # 监控模块 │ │ ├── oper-log/ # 操作日志 │ │ ├── login-log/ # 登录日志 │ │ ├── online/ # 在线用户 │ │ ├── job/ # 定时任务 │ │ ├── server/ # 服务监控 │ │ └── cache/ # 缓存监控 │ ├── shared/ # 共享模块 │ │ ├── prisma/ # Prisma 服务 │ │ └── redis/ # Redis 服务 │ ├── app.module.ts # 根模块 │ └── main.ts # 入口文件 ├── .env # 环境变量 ├── package.json └── tsconfig.json ``` ## 快速开始 ### 环境要求 - Node.js >= 18 - MySQL >= 8.0 - Redis >= 6.0 ### 安装依赖 ```bash npm install ``` ### 配置环境变量 复制 `.env` 文件并根据实际情况修改: ```env # 应用配置 NODE_ENV=development PORT=3000 API_PREFIX=/api # 数据库配置 DATABASE_URL="mysql://用户名:密码@localhost:3306/ruoyi_node?schema=public" # Redis配置 REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DB=0 # JWT配置 JWT_SECRET=your-secret-key JWT_EXPIRES_IN=7d JWT_REFRESH_EXPIRES_IN=30d ``` ### 数据库初始化 ```bash # 生成 Prisma 客户端 npm run prisma:generate # 执行数据库迁移 npm run prisma:migrate # 初始化数据(创建默认管理员等) npm run prisma:seed ``` ### 启动服务 ```bash # 开发模式 npm run start:dev # 生产模式 npm run build npm run start:prod ``` 服务启动后: - API 地址: http://localhost:3000/api - API 文档: http://localhost:3000/api-docs ### 默认账号 - 用户名: `admin` - 密码: `admin123` ## API 文档 项目集成了 Swagger,启动后可以访问 `/api-docs` 查看完整的 API 文档。 ## 主要特性 1. **JWT 认证** - 基于 JWT 的无状态认证,支持 Token 刷新 2. **RBAC 权限** - 基于角色的访问控制,支持菜单和按钮级别权限 3. **数据权限** - 支持部门数据权限隔离 4. **操作日志** - 自动记录系统操作日志 5. **登录日志** - 记录用户登录信息 6. **Redis 缓存** - 支持 Token 存储和缓存管理 7. **数据验证** - 使用 class-validator 进行数据验证 8. **API 文档** - 自动生成 Swagger API 文档 ## 与 RuoYi-Vue 的对应关系 | 功能 | RuoYi-Vue (Java) | RuoYi Node (Node.js) | |------|------------------|---------------------| | 框架 | Spring Boot | NestJS | | ORM | MyBatis | Prisma | | 认证 | JWT | JWT (NestJS) | | 权限 | Spring Security | 自定义 Guard | | 缓存 | Redis | Redis (ioredis) | | 定时任务 | Quartz | @nestjs/schedule | ## 开发计划 - [x] 基础架构搭建 - [x] 用户认证模块 - [x] 系统管理模块 - [x] 监控模块 - [ ] 代码生成器 - [ ] 文件上传/下载 - [ ] 数据导出 Excel - [ ] 更完善的定时任务调度 ## 许可证 [MIT](LICENSE) ## 致谢 本项目参考了 [RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 的设计和数据库结构。