在创建dynamic module时,某些nestjs模块使用的是 registerAsync(),有些使用 forRootAsync()。是推荐的方法,还是两者之间有什么区别?
PassportModule.registerAsync({
imports: [ConfigModule],
useExisting: PassportConfigService,
}),
TypeOrmModule.forRootAsync({
imports: [ConfigModule],
useExisting: TypeormConfigService,
}),
答案 0 :(得分:1)
名称仅是约定,并不影响应用程序的行为。不过,选择一个适合您的用例的名称很重要。我会考虑以下条件:
如果您的模块必须以不同的方式导入到根/子模块中,请坚持使用forRoot
/ forChild
。
否则,请使用描述您的用例的名称。为什么首先需要 dynamic 导入,它有什么作用?例如:
MyDatabaseModule.populate(data)
与MyDatabaseModule.createConnection(configuration)
并非所有动态模块实际上都是异步的。因此,如果您的导入实际上是异步的(或可以是异步的),请仅使用后缀async
。这也使您有机会提供导入的同步和异步变体。