和 Egg 体系相同的部分

这部分的内容和 Egg 体系基本是相同的,大体不同的是后缀的区别 *.ts,以及根目录(midway 的根目录在 src)。

运行环境

目前没有做特殊处理,完全一样,查看运行环境文档

配置

框架支持根据环境来加载配置,定义多个环境的配置文件,唯一不同的是后缀的区别,具体环境请查看运行环境配置

  1. src/config
  2. |- config.default.ts
  3. |- config.prod.ts
  4. |- config.unittest.ts
  5. `- config.local.ts

Web 中间件

除了目录在 src/app/middleware 以及后缀名为 *.ts ,其余完全一样,查看中间件文档

Router 路由

src/app/router.ts 文件依旧可用,推荐使用 midway 体系的 路由装饰器,egg 的路由文档在这里

框架扩展

针对框架自身的扩展点,依旧保留可用,目录变为 src/app/*.ts,文档查看 框架扩展

启动自定义

启动自动以依旧保留可用,目录变为 src/app.ts,文档查看 框架扩展

如果想在 app.ts 中调用 IoC 中的对象,可以通过以下方法。

  1. // app.js
  2. module.exports = app => {
  3. app.beforeStart(async () => {
  4. // 从全局作用域拿单例对象
  5. const obj = await app.applicationContext.getAsync('xxx');
  6. // 从请求作用域拿对象
  7. const ctx = app.createAnonymousContext();
  8. const obj = await ctx.requestContext.getAsync('xxx');
  9. });
  10. };