Nestjs 请求和应用程序生命周期

arh*_*nee 6 nestjs

我正在寻找有关 NestJS 框架的请求和应用程序生命周期的信息。具体来说:

  1. 对于实现的路由,请求中以下进程的执行顺序是什么:中间件、管道、守卫、拦截器和任何其他潜在的请求进程

  2. NestJS 应用程序中模块和提供程序的生命周期是多少?它们在请求、应用程序或其他东西的生命周期内持续吗?

  3. 除了 OnModuleInit 和 OnModuleDestroy 之外,还有生命周期挂钩吗?

  4. 是什么导致 Modelule 被销毁(并触发 OnModuleDestroy 事件)?

Vin*_*OPS 8

对于实现的路由,请求中以下进程的执行顺序是什么:中间件、管道、守卫、拦截器和任何其他潜在的请求进程

常见的顺序是:

  • 中间件
  • 卫兵
  • 拦截器(在操作流之前)
  • 管道
  • 拦截器(在流被操作之后)
  • 异常过滤器(如果捕获到任何异常)

NestJS 应用程序中模块和提供程序的生命周期是多少?它们在请求、应用程序或其他东西的生命周期内持续吗?

它们会在应用程序的整个生命周期内持续存在。当 NestApplication 或 NestMicroservice 关闭时,模块会被销毁(参见close方法INestApplication)。

除了 OnModuleInit 和 OnModuleDestroy 之外,还有生命周期挂钩吗?

不,目前没有。

是什么导致 Modelule 被销毁(并触发 OnModuleDestroy 事件)?

见我对第二点的回答。当您看起来对生命周期钩子感兴趣时,您可能会对问题#938#550感兴趣