和 Egg 体系相同的部分

和 Egg 体系相同的部分

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

运行环境

目前没有做特殊处理,完全一样,查看运行环境文档 和 Egg 体系相同的部分 - 图1 。

配置

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

src/config
|- config.default.ts
|- config.prod.ts
|- config.unittest.ts
`- config.local.ts

Web 中间件

除了目录在 src/app/middleware 以及后缀名为 *.ts ,其余完全一样,查看中间件文档 和 Egg 体系相同的部分 - 图3 。

Router 路由

src/app/router.ts 文件依旧可用,推荐使用 midway 体系的 路由装饰器,egg 的路由文档在这里 和 Egg 体系相同的部分 - 图4 。

框架扩展

针对框架自身的扩展点,依旧保留可用,目录变为 src/app/*.ts,文档查看 框架扩展 和 Egg 体系相同的部分 - 图5 。

启动自定义

启动自定义依旧保留可用,目录变为 src/app.ts,文档查看 启动自定义 和 Egg 体系相同的部分 - 图6 。

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

// app.js
module.exports = app => {
  app.beforeStart(async () => {

    // 从全局作用域拿单例对象
    const obj = await app.applicationContext.getAsync('xxx');

    // 从请求作用域拿对象
    const ctx = app.createAnonymousContext();
    const obj = await ctx.requestContext.getAsync('xxx');

  });
};