里程一:全栈项目实践总结(基于nodejs实现服务端内核引擎elpis-core)

12 阅读1分钟

一:什么是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: '/' });