elpis-core | 整体架构总览
一、前言
想要吃透一款框架的底层架构,真的不用死磕晦涩源码、堆砌零散知识点!我整理了一套四步高效学框架方法论,由浅入深、层层递进,帮你快速拿捏 elpis-core 核心逻辑 ✨
本篇文章就用这套极简思路,带大家轻松拆解 elpis-core 内核:搞懂定位价值、摸清架构流程、拆解模块分工、串起全链路逻辑,高效搞定框架核心能力 ✅
先知其意👀:读懂框架核心定位、核心价值
再见轮廓🗺️:摸清整体架构、完整运行流程
分而治之🧩:拆解各模块职责、工程目录结构
无缝衔接🔗:串联全链路,打通完整运行逻辑
二、核心定义(先知其意)
核心定位
elpis-core 是基于 Node.js 打造的轻量化服务端内核引擎,核心主打 BFF 前后端中间层能力,就像前后端交互的「专属中转站」,承接所有交互请求 🚀
核心价值
它能统一接管前端页面渲染、各类 API 接口请求,一站式搞定请求校验、逻辑调度、响应数据组装,全程自动化处理 ⚡
最核心的好处是彻底解耦前后端代码,告别跨端逻辑混乱、职责纠缠的问题,让请求全链路标准化、规范化,接口交互更稳、更快、更好维护 💯
三、整体架构轮廓(再见轮廓)
在整套业务架构里,elpis-core 妥妥的核心中转枢纽!前端发出的每一个请求,都会经过它统一接收、校验、处理、响应,实现全流程闭环管控,不遗漏任何细节 🛡️
框架所有硬核能力,全部由7 大 Loader 自动加载器驱动生效。用户请求会顺着标准化的 Loader 流水线逐层处理,形成一套规范、稳定、高可用的请求执行体系,全程有序不混乱 ✅
3.1 单次 API 请求全生命周期 ♻️
前端任意一次 API 请求,都会经历一套标准化的递进式流程,从接入、校验、业务执行到最终返回结果,全程可控、闭环无死角,完整链路如下 👇 🔗 感谢掘金老哥的图
┌──────────────────────┐
│ HTTP Request │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ 1.静态资源 & 模板渲染 │
│ 2.请求体解析 │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ 全局异常捕获【兜底】 │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ 接口签名校验【防篡改】 │
│ 仅拦截 /api/* 路由 │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ 参数 Schema 强校验 │
│ 全维度参数合规校验 │
└──────────┬───────────┘
│
┌──────────▼───────────┐
│ 路由分发|Router │
│ 接口/页面路由精准匹配 │
└──────────┬───────────┘
│
┌──────────▼───────────────────┐
│ 控制层|Controller │
│ 参数处理 + 服务调用 + 响应组装 │
└──────────┬───────────────────┘
│
┌──────────▼───────────┐
│ 服务层|Service │
│ 核心业务逻辑 & 数据处理│
└──────────────────────┘整条请求链路有着严格的执行优先级:先做安全校验、再进行路由分发、最后执行业务逻辑。三层递进防护,从源头堵住接口漏洞,稳稳保障接口安全与稳定性 🔒
🛡️ 前置拦截层:全局异常兜底、接口签名校验、参数强校验,提前规避绝大多数接口风险,筑牢安全第一道防线
🔁 精准分发层:智能路由匹配,精准区分页面渲染和 API 接口请求,分类处理、互不干扰
🎯 业务落地层:控制器统一调度流转,服务层专注业务实现,各层分工明确、彻底解耦
四、架构分层拆解(分而治之)
elpis-core 的工程目录设计超级规范,全程采用分层解耦的优秀思想!整体拆分为四大核心模块,各模块各司其职、互不耦合,结构清晰到新手也能快速看懂,上手难度直接拉低 👇
四大核心模块超清晰分工:
🚀 应用入口层:项目启动总开关,全权负责框架内核整体初始化
⚙️ 环境配置层:搞定多环境配置隔离、覆盖与适配,适配各类运行场景
🧩 内核核心层:通用基础能力合集,和业务完全解耦,复用性超强
💻 业务应用层:开发者专属编码阵地,只需在这里专注写业务逻辑
下面是完整工程目录,附带每一个文件的核心作用,一目了然 📂: 🔗 感谢掘金老哥的图
elpis/
├── index.js # 应用入口:启动 elpis-core 框架,初始化整体服务
├── config/ # 多环境统一配置目录
│ ├── config.default.js # 公共基础配置(所有环境通用)
│ ├── config.local.js # 本地开发环境配置
│ ├── config.beta.js # 测试预发环境配置
│ └── config.prod.js # 线上生产环境配置
├── elpis-core/ # 框架内核层(纯基础能力,与业务完全解耦)
│ ├── index.js # 内核启动入口,统一编排所有内核模块加载顺序
│ ├── env.js # 环境变量识别、解析与统一注入
│ └── loader/ # 七大核心自动加载器(框架核心能力载体)
│ ├── middleware.js # 全局中间件自动注册与加载
│ ├── router-schema.js # 参数校验规则自动加载
│ ├── controller.js # 控制器自动扫描、注册加载
│ ├── service.js # 业务服务层自动加载
│ ├── config.js # 多环境配置合并、覆盖加载
│ ├── extend.js # 全局拓展能力加载
│ └── router.js # 业务路由自动注册与映射
└── app/ # 业务开发层(约定式开发,无需手动注册)
├── middleware.js # 业务中间件顺序编排总入口
├── controller/ # 控制器层:接收请求、参数预处理、服务调用、响应组装
│ ├── base.js # 基础控制器:封装全局公共能力,供业务控制器继承
│ ├── project.js # 项目核心业务控制器
│ └── view.js # 页面视图渲染控制器
├── service/ # 服务层:承载核心业务逻辑、数据处理、第三方调用
│ ├── base.js # 基础服务:全局通用能力注入
│ └── project.js # 项目自定义业务服务
├── middleware/ # 自定义业务中间件目录
│ ├── error-handler.js # 全局异常兜底中间件,统一异常捕获与响应
│ ├── api-sign-verify.js # 接口签名校验中间件,防接口篡改、重放攻击
│ └── api-params-verify.js # 接口参数 Schema 强校验中间件,保障参数合规性
├── router/ # 路由层:URL 路径与控制器方法映射
│ ├── project.js
│ └── view.js
├── router-schema/ # 独立参数校验规则库,统一管理接口校验规则
│ └── project.js
├── extend/ # 应用全局能力拓展,挂载至全局 App 实例
│ └── logger.js # 全局日志能力封装,统一日志输出规范
└── public/ # 静态资源与模板文件目录
├── output/ # Nunjucks 编译模板文件
└── static/ # 静态资源(CSS、图片、脚本等)五、全链路逻辑串联(无缝衔接)
单独看单个模块,只能懂局部功能;串起全链路,才能真正吃透整套框架 💡
elpis-core 依靠**6 大核心层级协同****联动**,搭建出一套完整、顺滑的 BFF 运行体系。从请求接入、安全校验、业务执行到最终响应返回,全程闭环流转,每一层职责清晰、互不越界,配合超默契 🤝
5.1 路由层(Router)| 请求调度大门 🚪
作为整个请求链路的第一道关口,统一收纳前端页面、API 所有类型请求。精准匹配 URL 路径与对应控制器方法,给每一个请求分配专属执行逻辑,实现精准分发、不跑偏、不报错 ✅
5.2 中间件层(Middleware)| 安全安检中心 🔐
所有请求想要进入业务逻辑,必须先经过中间件层的「全方位安检」,这是框架接口安全的核心防线,缺一不可!
核心工作:全局异常兜底捕获、接口签名校验(杜绝接口篡改、重放攻击)、参数 Schema 强校验,从源头拦截非法请求,提前规避各类业务风险 🛡️
5.3 控制层(Controller)| 业务调度中枢 🎛️
控制器坚守单一职责原则:只做调度和数据组装,不写核心业务逻辑,分工超级纯粹!
主要负责:接收校验通过的合法请求、预处理请求参数、调用对应业务服务、统一封装标准化响应数据,全程统筹请求流转,是衔接前后业务的核心枢纽 🔗
5.4 服务层(Service)| 业务核心大脑 🧠
服务层是框架的「业务核心大脑」,接收控制器的调用指令,承载所有核心业务逻辑的实现。
日常开发中,自定义业务逻辑、核心数据处理、第三方接口调用、数据聚合加工等核心操作,全部在这里完成,专注业务、高效纯粹 ⚡
5.5 配置层(Config)| 多环境适配底座 ⚙️
采用「通用默认配置 + 环境专属配置」的智能覆盖机制,完美适配本地开发、测试预发、线上生产三大运行环境。
无需修改大量业务代码,一键即可切换运行环境,轻松适配不同场景的差异化配置需求,开发、部署超便捷 ✅
5.6 拓展层(Extend)| 无痛能力拓展 💡
支持给全局 App 实例自定义拓展能力,比如全局日志、通用工具方法、全局变量等,按需拓展、灵活度拉满。
全程不用改动框架内核源码,既保证了内核的纯净稳定,又极大提升了项目的可拓展性和灵活性,适配各类个性化业务需求 🚀
六、总结
总的来说,elpis-core 是一款轻量化、高规范、**超**稳定、强可拓展的 Node.js BFF 内核引擎 🌟
它依托七大 Loader 实现零配置自动加载,靠分层架构实现内核与业务彻底解耦,凭借标准化请求流水线筑牢接口安全防线。整套架构简洁优雅、分工明确,完美适配各类前后端交互场景,是一款超高性价比的轻量 BFF 中间层解决方案 💯
