elpis-core

9 阅读1分钟

一、基于nodejs实现服务端内核引擎

第一章的小总结

  1. elpis-core模块

    • 在入口文件index.js将所有的loader加载完毕并且挂载到Koa的实例对象上,在引入时注意router的引入顺序,因为可能会依赖其他的导致出现问题。
    • 注意区分当前项目所处的环境,利用启动项目时传带的参数来判断当前项目所处的环境。
  2. app模块整体的主要逻辑:

    • 通过router(引入controller层注册路由) --> controller(引入service层返回数据的格式) --> service(获取数据)。以及使用middleware注册全局中间件比如全局错误捕获、签名校验(用来限制高频访问接口)、请求参数校验。router-schema用来定义参数校验的类型、extend用来实现日志打印技术,方便及时发现排查出错误、public用来存放一些通用资源与页面。
  3. config模块

    • 用来判断当前项目所处的环境,来给出相关的数据

问题:

  1. 在参数校验时,拿不到params参数的原因是什么?

    因为params在路由的 handler 链中临时存在,一旦路由执行完毕就被清空了,所有在middleware.js中注册该校验中间件是拿不到params。在loader注册路由的时,重写对应请求方法进行,在请求时进行校验。