【RuoYi-Eggjs】:将若依带入 Node.js 世界的企业级后台管理系统
在企业级后台管理系统的开发中,若依凭借其强大的功能和优秀的生态,早已成为 Java 开发者的首选框架之一。但是,对于 Node.js 开发者来说,一直没有一套完整的企业级后台管理系统框架。
今天介绍的 RuoYi-Eggjs,正是一款基于 Egg.js 框架开发,100% 实现若依(RuoYi-Vue)系统功能的 Node.js 版本。
什么是 RuoYi-Eggjs?
RuoYi-Eggjs 是一个致力于让 Node.js 开发者也能享受若依生态便利的开源项目。它基于企业级 Node.js 框架 Egg.js 构建,并且 完全复用了若依原有的数据库结构和 MyBatis XML 映射文件。这意味着,你可以在 Node.js 环境中,使用熟悉的 MyBatis XML 风格来编写 SQL,同时享受 Node.js 带来的轻量和高效。
核心特性解析
RuoYi-Eggjs 并非简单的复刻,它在 Node.js 的基础上进行了深度的适配和增强:
1. MyBatis XML 风格 SQL 支持 ️
这是 RuoYi-Eggjs 最具特色的功能。通过自研插件 ruoyi-eggjs-mybatis,它实现了业务逻辑与 SQL 的分离。开发者可以在 XML 文件中编写动态 SQL,这在处理复杂查询时比传统的 ORM 更加灵活高效。
2. 强大的全栈能力 ️
- 多数据库支持:不仅支持 MySQL,还兼容 PostgreSQL 和 SQLite,且支持多数据源配置。
- 代码自动生成:内置 CLI 工具,可基于 XML Mapper 自动生成 Service 层代码,大幅提升开发效率。
- 内置内网穿透:集成 FRP 客户端,一条命令即可将本地服务暴露到公网,方便远程调试和演示。
- 定时任务调度:基于
egg-bull实现,支持分布式、失败重试、日志记录和可视化监控。
3. 企业级安全与性能 ️
- 权限控制:提供类似 Spring Boot
@PreAuthorize的权限装饰器,支持精确到按钮级别的权限管理。 - JWT 认证:基于 JWT 实现无状态的用户认证。
- 多级缓存:支持内存、文件、Redis 等多级缓存策略。
- 限流保护:内置 API 限流机制,有效防止恶意攻击。
4. 极致的开发体验
- TypeScript 友好:提供完整的类型定义,IDE 智能提示让编码更加丝滑。
- 路由注解:使用装饰器定义路由,代码结构更加清晰简洁。
技术栈概览
| 组件 | 技术选型 | 说明 |
|---|---|---|
| 运行时 | Node.js (>=20.0.0) | 强大的 JavaScript 运行时 |
| 核心框架 | Egg.js (^3) | 阿里开源的企业级 Node.js 框架 |
| ORM 方案 | XML Mapper | 自研 MyBatis 风格 SQL 映射 |
| 数据库 | MySQL / PG / SQLite | 多种数据库适配 |
| 前端适配 | RuoYi-Vue3 | 无缝对接官方 Vue3 前端 |
快速上手指南
想要体验 RuoYi-Eggjs?只需简单几步:
1. 环境准备
确保本地安装了 Node.js (>= 20), MySQL (>= 5.7) 和 Redis。
2. 获取项目
git clone https://github.com/undsky/ruoyi-eggjs.git
cd ruoyi-eggjs
npm install
3. 数据库初始化
创建一个名为 ruoyi 的数据库,并导入项目 sql/ 目录下的 SQL 脚本。
4. 配置与启动
修改 config/config.local.js 中的数据库配置,然后启动开发模式:
npm run dev
开发模式会自动启动 Mapper 代码生成器和调试服务。启动成功后,访问 http://localhost:7001 即可看到效果。
前端对接
RuoYi-Eggjs 可以无缝对接 RuoYi-Vue3 前端项目。只需在前端的 vite.config.js 中将后端接口地址指向 http://localhost:7001 即可。
总结
RuoYi-Eggjs 为 Node.js 社区带来了一个功能完备、架构成熟的企业级后台解决方案。无论你是想从 Java 迁移到 Node.js,还是寻找一个强大的 Node.js 后台脚手架,RuoYi-Eggjs 都值得一试。
- 项目地址:RuoYi-Eggjs
- 开发文档:RuoYi-Eggjs 文档