什么';加载Nestjs应用程序时,最好的方法是什么?
当我的Nest.js应用程序加载时,我需要运行一些数据库操作。(主要围绕数据初始化)。所有这些任务都已生成,并在控制器中作为操作使用。如果我手动转到/api/controller/action,它们就会工作。我需要一种在服务器加载时调用它们的方法。有什么建议吗?NestJS公开了一些可以在服务(或其他地方)中实现的生命周期挂钩。您只需创建一个实现所需生命周期挂钩的服务,并将其注册为什么';加载Nestjs应用程序时,最好的方法是什么?,nestjs,Nestjs,当我的Nest.js应用程序加载时,我需要运行一些数据库操作。(主要围绕数据初始化)。所有这些任务都已生成,并在控制器中作为操作使用。如果我手动转到/api/controller/action,它们就会工作。我需要一种在服务器加载时调用它们的方法。有什么建议吗?NestJS公开了一些可以在服务(或其他地方)中实现的生命周期挂钩。您只需创建一个实现所需生命周期挂钩的服务,并将其注册为AppModule的提供者 例如: @Injectable() export class WarmupService
AppModule
的提供者
例如:
@Injectable()
export class WarmupService implements OnApplicationBootstrap {
constructor(
private readonly db: Db
)
onApplicationBootstrap() {
this.db.doDataInitialization();
}
}
您不必为此创建新的服务,您也可以简单地将此钩子直接放在AppModule(或任何其他模块)中
你可以在网上阅读更多
在NestJS之前
如果您需要在初始化NestJS之前运行一些逻辑(并且上面的生命周期钩子都不匹配),您只需在调用app.listen(…)
之前在main.ts
文件中运行它即可