一、前提 什么是eplis-code
eplis-code是一个基于koa 2.7.0 企业级的BFF应用, 深层基础是一个先进后出的洋葱圈模型通过不同的中间件进行处理页面访问、接口参数接收、处理以及结果返回
二、如何实现
第一、规范项目目录结构,方便项目维护
elpis
|--app
| |--controller
| |--extend
| |--middleware
| |--router
| |--router-schema
| |--service
|--config
|--logs
|--elpis-code
| |--loadder
| |--env.js
| |--index.js
第二、入口文件通过不同loader来添加不同模块 例如
middlewarLoader --> 读取middlewar中间件如:(参数合法化校验、 签名校验中间件、 错误集中处理中间件)
routerSchemaLoader --> 读取根据json-schema与ajv对api规则进行规范的参数在参数合法化校验中间中使用
conctrollerLoader --> 读取接口内容信息以用于在路由中使用里面方法可以有(实际接口处理方法调用,接口处理结果放回)
serviceLoader --> 读取所有的实际接口处理方法挂载到app.service中
configLoader --> 根据环境读取对应配置文件配置以及基础文件路径合并配置到 app.config上。ps:(为了兼容不同的运行环境所以文件路径的'/'建议通过path插件中的‘sep’变量代替)
extendLoder --> 读取工具类实例挂着到全局app实例中比如:(日志工具)
优点
一、统一规范 可大大减低了学习上手成本
二、结构清晰 后续维护方便
缺点
目前整体规范通过需要靠人为进行约束、不是通过校验的方式强制化对于团队管理要求比较高