一:什么是elpis-core
elpis-core 实际是项目服务端的内核引擎,通过前期规划设计好相应的文件路径,并且通过相对应loader去解析文件,将解析后的内容挂载至Kao实例对象上,实际类似于 egg.js 框架
二:loader 的作用
config-loader
解析 config/ 文件,获取不同环境的参数配置,最后将config对象挂载至 Koa 实例对象上。
controller-loader
解析 app/controller,做业务代码处理,例如接口请求数据返回给客户端,做服务端页面渲染等,最后将 controller 对象挂载至 Koa 实例对象上。
extend-loader
解析 app/extend 文件,去做一些扩展,例如日志输出,最后将 extend 对象 挂载至 Koa 实例对象上。
middleware-loader
解析 app/middleware,主要处理相关中间件代码,例如校验接口参数、异常捕获、签名检验、token校验等,最后将middleware对象挂载至 Koa 实例对象上。
routerSchema-loader
解析 app/router-schema,做接口参数校验,最后将 routerSchema 对象挂载至 Koa 实例对象上。
router-loader
解析 app/router,引入 koa-router,做路由注册,最后将 router 对象挂载至 Koa 实例对象上。
service-loader
解析 app/service,处理接口数据,最后将 service 对象挂载至 Koa 实例对象上。
三:启动入口
在此入口通过 koa 启动项目,加载loader和将基础配置挂载至 koa 实例对象上
const Koa = require('koa')
function start(options = {}){
// 创建koa实例
// 将需要的对象挂载至 koa 实例上
// 加载对应loader
// 启动koa实例
app.listen(port, host, () => {
console.log(`server is running port:${port}`);
});
}
module.exports = {
start
}
const ElpisCore = require('./index.js')
ElpisCore.start({ name: 'Elpis', homePage: '/' });