和 Egg 体系相同的部分
这部分的内容和 Egg 体系基本是相同的,大体不同的是后缀的区别 *.ts
,以及根目录(midway 的根目录在 src)。
运行环境
目前没有做特殊处理,完全一样,查看运行环境文档。
配置
框架支持根据环境来加载配置,定义多个环境的配置文件,唯一不同的是后缀的区别,具体环境请查看运行环境配置
src/config
|- config.default.ts
|- config.prod.ts
|- config.unittest.ts
`- config.local.ts
Web 中间件
除了目录在 src/app/middleware
以及后缀名为 *.ts
,其余完全一样,查看中间件文档。
Router 路由
src/app/router.ts
文件依旧可用,推荐使用 midway 体系的 路由装饰器,egg 的路由文档在这里。
框架扩展
针对框架自身的扩展点,依旧保留可用,目录变为 src/app/*.ts
,文档查看 框架扩展。
启动自定义
启动自定义依旧保留可用,目录变为 src/app.ts
,文档查看 启动自定义。
如果想在 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');
});
};