使用 TypeScript 的装饰器 和 Koa 实现类似于 Spring boot 注解

原理

  1. 首先需要知道 ts 装饰器的执行顺序
  2. 然后一步一步的对相关的装饰器进行反射
  3. 然后动态加载模块
  4. 解析相关的模块
  5. 将模块中的方法进行解析
  6. 将解析的方法 打包成一个路由函数
  7. 将函数加载到koa-router

一、 ts 装饰器的执行顺序

  1. 在一个类中 先执行的是 方法中的参数装饰器
  2. 然后 是 方法装饰器
  3. 再才是类装饰器

所以我们可以在类装饰器执行的时候将方法包装成一个异步的路由函数

二、执行装饰器的时候利用反射将对应参数绑定当当前target上

三、在类装饰器的地方,读取一下所有方法,然后打包成异步的路由函数 再加载到路由中