【问题标题】:What's the best way to do stuff when Nestjs application loads?当 Nestjs 应用程序加载时,最好的方法是什么?
【发布时间】:2020-10-19 02:21:02
【问题描述】:

当我的 Nest.js 应用程序加载时,我需要运行一些数据库操作。 (主要围绕数据初始化)。所有这些任务都已经构建并作为控制器中的操作工作。如果我手动转到 /api/controller/action - 他们工作。当服务器加载时,我需要一种方法来调用它们中的每一个。有什么建议吗?

【问题讨论】:

    标签: nestjs


    【解决方案1】:

    NestJS 公开了一些您可以在服务(或其他地方)中实现的生命周期钩子。您只需创建一个实现所需生命周期钩子的服务,并将其注册为您的AppModule 的提供者。

    例如:

    @Injectable()
    export class WarmupService implements OnApplicationBootstrap {
        constructor(
            private readonly db: Db
        )
    
        onApplicationBootstrap() {
            this.db.doDataInitialization();
        }
    }
    

    您不必为此创建一个新服务,您也可以简单地将这个钩子直接放在您的 AppModule(或任何其他模块)中。

    您可以在documentation阅读更多内容。

    在 NestJS 之前

    如果您需要运行一些逻辑之前 NestJS 被初始化(并且上面的生命周期钩子都不匹配),您可以在调用@987654325 之前在main.ts 文件中简单地运行它@。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 2012-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多