当我的 Nest.js 应用程序加载时,我需要运行一些数据库操作。(主要围绕数据初始化)。所有这些任务都已经构建并在控制器中作为操作工作。如果我手动去 /api/controller/action - 他们工作。当服务器加载时,我需要一种方法来调用它们中的每一个。有什么建议吗?
NestJS 公开了一些生命周期钩子,您可以在服务(或其他地方)中实现这些钩子。您只需创建一个实现您需要的生命周期钩子的服务,并将其注册为您的AppModule.
例如:
@Injectable()
export class WarmupService implements OnApplicationBootstrap {
constructor(
private readonly db: Db
)
onApplicationBootstrap() {
this.db.doDataInitialization();
}
}
Run Code Online (Sandbox Code Playgroud)
您不必为此创建一个新服务,您也可以简单地将此挂钩直接放置在您的 AppModule(或任何其他与此相关的模块)中。
如果你需要在NestJS 初始化之前运行一些逻辑(并且上面的生命周期钩子都不匹配),你可以main.ts在调用app.listen(..).
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |