elpis-core 是什么
elpis-core是基于egg.js的设计理念,“约定大于配置”的实现方式。使用koa来实现的一套轻量级的服务端内核。主要使用BFF的设计模式,在前端和后端之间增加一个中间层。用于后端的数据或者业务的聚合。
elipis-core能做什么
一个请求,首先会经过 koa中间件 -> 接入层 -> 业务层 -> 服务层 最后在返回内容。在这个过程中koa的中间件因为使用洋葱圈模式 所以会触达执行一次,返回在执行一次。
设计和实现
通过配置静态文件,在后启动的时候将静态文件的内容加载到内存。来实现一个运行时的模块化的系统。并且功能不满足需求可以完成自定扩展。
系统设置扩展
- 通过config设置系统的初始化数据
- extend文件夹是对系统内容扩展 如:logger的扩展
自定义中间件
- 可以进行规则的校验,系统的健壮性处理
全局中间件的引入
- 模板渲染引擎、引入ctx.body解析中间件、引入异常捕获中间件、引入签名合法性校验中间件以及自定义中间件的引入
接入层
- 路由配置化 导入对应的业务层实现逻辑。一个路由对应一个业务
- 路由校验配置化 根据路由的配置 来校验参数 是否符合业务要求
业务层
- controller 根据请求来实现业务逻辑,例如:通过service查询数据库,返回静态页面等
服务层
- service 主要数据库的操作或者请求其他网络请求
总结
elpis-core 通过模块化和约定优于配置的理念来进行设计。让前端开发只需要按照约定专注于开发业务逻辑,减少配置化的重复性操作。支持不同环境配置和加载。并且提供了扩展功能。可以根据需求自定义功能。
备注引用: 抖音“哲玄前端”《大前端全栈实践》