课程学习来自于“哲玄前端”的《大前端全栈实践课》,从零开发一个企业级全栈应用框架
架构设计
-
elpis-core 是基于 koa 开发的服务引擎。在服务启动时,通过 elpis-core 解析项目业务模块加载到内存中,提供服务能力。
-
采用
约定大于配置,遵循特定的目录结构和命名规范,减少了配置文件的复杂性,提高了开发效率。 -
core 解析器
-
BFF 架构图
-
洋葱圈模型
项目目录结构
elpis
├─ app // 业务文件目录
│ ├─ controller // 业务逻辑处理
│ ├─ extend // 拓展
│ ├─ middleware // 中间件
│ ├─ middleware.js // 全局中间件
│ ├─ public // 静态资源根目录
│ ├─ router // 路由
│ ├─ router-schema // 路由校验规则
│ └─ service // 数据处理
├─ config // 环境配置
├─ elpis-core // 内核引擎目录
│ ├─ env.js
│ ├─ index.js
│ └─ loader
│ ├─ config.js
│ ├─ controller.js
│ ├─ extend.js
│ ├─ middleware.js
│ ├─ router-schema.js
│ ├─ router.js
│ └─ service.js
└─ index.js // 入口文件
core 解析器
// app 是 koa 实例
// 加载 config
configLoader(app);
// 加载 middleware
middlewareLoader(app);
// 加载 extend
extendLoader(app);
// 加载 service
serviceLoader(app);
// 加载 controller
controllerLoader(app);
// 加载 routerSchema
routerSchemaLoader(app);
// 注册全局中间件
try {
require(`${path.resolve(app.baseDir, `.${sep}app${sep}middleware.js`)}`)(app);
} catch (err) {
console.log("[exception] there is no middleware file.");
}
// 注册路由
routerLoader(app);