VTJ.PRO 在线应用开发平台的后端模块系统

后端模块系统

VTJ.PRO 后端是一个基于 NestJS 的应用,其设计采用了模块化架构,将平台级服务与特定领域的业务逻辑分离开来。它为低代码引擎提供了坚实的基础,具有自动验证、标准化响应封装和全面的安全模型等特性。

AppModule 组合

AppModule 作为后端应用的根模块。它协调了核心基础设施、业务模块和全局配置的集成。

  • 基础设施 :通过 ConfigModule 加载环境变量,通过 TypeOrmModule 管理数据库连接,并通过 MulterModule 处理文件上传。
  • 模块分离 :系统区分了 CoreModules(身份认证、访问控制、系统设置)和 BusinessModules(低代码应用、DSL管理、AI智能体)。

后端系统架构

下图说明了主入口点、共享基础设施和模块层之间的关系。

flowchart TD Main["main.ts"] AppMod["AppModule"] ValPipe["ValidationPipe"] LogInt["LoggingInterceptor"] ResInt["ResponseInterceptor"] ExcFil["AllExceptionsFilter"] Core["Core Modules (Auth, RBAC, Cache)"] Biz["Business Modules (DSL, Apps, AI)"] Main --> AppMod AppMod --> Core AppMod --> Biz AppMod -.-> ValPipe AppMod -.-> LogInt AppMod -.-> ResInt

全局中间件与请求生命周期

后端使用 NestJS 的原生组件实现标准化的请求/响应生命周期,以确保所有端点的一致性。

组件 类名 用途
验证 ValidationPipe 强制使用 DTO 模式并转换输入类型
日志记录 LoggingInterceptor 记录请求持续时间和元数据,用于监控
响应封装 ResponseInterceptor 将所有成功响应封装为标准 { code, data, msg } 格式
异常处理 AllExceptionsFilter 捕获所有错误并返回标准化的 JSON 错误响应

Swagger 文档

该平台使用 Swagger 自动生成 API 文档。在开发环境中,可通过 /docs 端点访问。该设置包括 JWT Bearer 认证配置,允许直接从 UI 测试受保护的路由。

核心模块与业务模块

代码库在 backend/src/ 中分为两个主要目录,以保持关注点的清晰分离。

核心模块

这些模块提供了任何企业应用所需的"平台"能力。

  • 身份与访问 :AuthModule 和 UserModule 处理认证(包括 OAuth)和用户资料。
  • RBAC :RoleModule 和 PermissionModule 管理细粒度的访问控制列表。
  • 系统服务 :包括 CacheModule(Redis/内存)、SettingModule(全局配置)和 OssModule(对象存储)。

有关详细信息,请参阅 核心模块(用户、认证、RBAC、缓存、设置)。

业务模块

这些模块包含特定于 VTJ 低代码平台的领域逻辑。

  • 低代码引擎 :LowcodeAppModule 和 DSLModule 管理应用及其 JSON 模式的生命周期。
  • AI 与智能 :AgentModule 和 SkillModule 与大语言模型(LLMs)集成,提供 AI 辅助开发功能。
  • 商业与运营 :OrderModule 和 ProductModule 处理平台的商业化功能。

有关详细信息,请参阅 业务模块(应用、DSL、模板、订单、智能体、技能)。

代码实体映射

下图展示了逻辑模块组与其在代码中具体服务实现之间的映射关系。

flowchart TD AuthS["AuthService"] UserS["UserService"] RoleS["RoleService"] CacheS["CacheService"] AppS["LowcodeAppService"] DslS["DslService"] AgentS["AgentService"] SkillS["SkillService"] BCS["BaseCrudService"] BCC["BaseCrudController"] AuthS -.-> UserS AppS -.-> BCS RoleS -.-> BCS DslS -.-> AppS

参考资料

相关推荐
小小张说故事1 小时前
Python 的 str 为什么设计成不可变?拆开字符串驻留、字符串池,以及 += 拼接到底慢在哪
后端·python
X54先生(人文科技)1 小时前
百度智能对 X54 先生学科底色评估
人工智能·深度学习·百度·架构
HelloWorld0011 小时前
拒绝被大模型算力绑架!基于语义复杂度与意图分流打造多模型混合动态路由网关(全套架构+实战)
架构
AI架构师之家1 小时前
我把 Hermes 这匹"马"养了两周,它干了一件让我有点发毛的事
后端
dpharness1 小时前
块协议用了两周,我把九个坑按顺序记下来了
后端
加宝的起点雷达2 小时前
跑了两周的信号日报,我把降级链改了四次
人工智能·后端
IT枫斗者枫哥2 小时前
CompletableFuture失败后返回空列表:异常没了,业务含义也变了
java·后端
Gopher_HBo2 小时前
opentelemetrySDK源码解析
后端
电子科技圈2 小时前
芯科科技2026年Tech Talks技术系列讲座再增添全新主题共探无线SoC架构演进与安全合规
科技·嵌入式硬件·mcu·物联网·安全·架构·iot
UrbanJazzerati2 小时前
AutoHotkey v2 零基础快速入门 Part 10:给路线回放添加高精度计时,理解累计延迟与路线一致性
后端