基于 Koa 实现服务引擎 elpis-core

106 阅读1分钟

课程学习来自于“哲玄前端”的《大前端全栈实践课》,从零开发一个企业级全栈应用框架

架构设计

  • elpis-core 是基于 koa 开发的服务引擎。在服务启动时,通过 elpis-core 解析项目业务模块加载到内存中,提供服务能力。

  • 采用约定大于配置,遵循特定的目录结构和命名规范,减少了配置文件的复杂性,提高了开发效率。

  • core 解析器

core解析器

  • BFF 架构图

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);