应用启动顺序
NestJs 是从根模块开始加载所有依赖模块和服务。
- 加载 AppModule
- 加载导入的子模块
- 加载模块中的服务、控制器和提供者。
模块生命周期
- onModuleInit(Module) 在模块所有提供者被初始化后调用。
- onApplicationBootstrap(Module) 在应用程序完全启动后调用。
服务生命周期
- constructor(Service) 服务实例化时调用。
- onModuleInit(Service) 服务实例化完成后调用。
全局生命周期
- beforeApplicationShutdown 应用程序关闭之前调用。
- onApplicationShutdown 应用程序完全关闭后调用。
请求处理执行顺序
- 中间件(Middleware)
- 守卫(Guard)
- 拦截器(Intercaptor)
- 管道(Pipe)
- 控制器(Controller)