【RuoYi-Eggjs】:将若依带入 Node.js 世界的企业级后台管理系统

【RuoYi-Eggjs】:将若依带入 Node.js 世界的企业级后台管理系统
最新回答
做梦的季节

2023-07-12 23:38:42

RuoYi-Eggjs 是一个基于 Egg.js 框架开发的企业级 Node.js 后台管理系统,旨在为 Node.js 开发者提供与 Java 版若依(RuoYi-Vue)功能完全一致的解决方案,同时结合 Node.js 的轻量化和高效特性。

核心特性解析
  • MyBatis XML 风格 SQL 支持

    通过自研插件 ruoyi-eggjs-mybatis 实现业务逻辑与 SQL 的分离,支持在 XML 文件中编写动态 SQL。

    优势:处理复杂查询时比传统 ORM 更灵活高效,降低学习成本(尤其对熟悉 MyBatis 的开发者)。

  • 强大的全栈能力

    多数据库支持:兼容 MySQL、PostgreSQL、SQLite,支持多数据源配置。

    代码自动生成:内置 CLI 工具可基于 XML Mapper 自动生成 Service 层代码,提升开发效率。

    内置内网穿透:集成 FRP 客户端,一键暴露本地服务到公网,便于远程调试和演示。

    定时任务调度:基于 egg-bull 实现,支持分布式、失败重试、日志记录和可视化监控。

  • 企业级安全与性能

    权限控制:提供类似 Spring Boot @PreAuthorize 的权限装饰器,支持按钮级权限管理。

    JWT 认证:基于 JWT 实现无状态用户认证,提升安全性。

    多级缓存:支持内存、文件、Redis 等缓存策略,优化性能。

    限流保护:内置 API 限流机制,防止恶意攻击。

  • 极致的开发体验

    TypeScript 友好:提供完整类型定义,IDE 智能提示提升编码效率。

    路由注解:使用装饰器定义路由,代码结构更清晰简洁。

技术栈概览
  • 运行时:Node.js (≥20.0.0)
  • 核心框架:Egg.js (^3)
  • ORM 方案:XML Mapper(自研 MyBatis 风格 SQL 映射)
  • 数据库:MySQL / PostgreSQL / SQLite
  • 前端适配:RuoYi-Vue3(无缝对接官方 Vue3 前端)
快速上手步骤
  1. 环境准备

    安装 Node.js (≥20)、MySQL (≥5.7)、Redis。

  2. 获取项目

    git clone
    https://github.com/undsky/ruoyi-eggjs.gitcd
    ruoyi-eggjsnpm install
  3. 数据库初始化

    创建名为 ruoyi 的数据库,导入项目 sql/ 目录下的 SQL 脚本。

  4. 配置与启动

    修改 config/config.local.js 中的数据库配置。

    启动开发模式:

    npm run dev

    访问

    http://localhost:7001
    查看效果。

  5. 前端对接

    将 RuoYi-Vue3 前端的 vite.config.js 中后端接口地址指向

    http://localhost:7001

适用场景
  • Java 转 Node.js 开发:提供与若依 Java 版一致的功能和架构,降低迁移成本。
  • Node.js 企业级后台开发:提供成熟的全栈解决方案,涵盖权限、缓存、定时任务等核心需求。
  • 高效开发需求:通过代码生成、内网穿透等工具提升开发效率。
总结

RuoYi-Eggjs 为 Node.js 社区填补了企业级后台管理系统的空白,其核心优势在于 完全复用若依生态(如数据库结构、MyBatis XML 风格)的同时,结合 Node.js 的轻量化和高效特性。无论是从 Java 迁移还是新建项目,它都是一个值得尝试的成熟框架。

项目地址

RuoYi-Eggjs GitHub
开发文档
RuoYi-Eggjs 文档