У меня есть три модуля в гнезде JS: EndpointModule
, JWTModule
и указанные c конечные точки в качестве модулей (например, InfoModule
)
Мой модуль EndpointModule выглядит следующим образом:
@Module({
imports: [
JWTModule.withRSAKeys(
Path.resolveByApp('./private.key'),
Path.resolveByApp('./public.key')
),
InfoModule,
//More Endpoints
],
exports: [JWTModule]
})
export class EndpointModule {}
JWTModule, как это:
@Module({
providers: [JWTService],
exports: [JWTService]
})
export class JWTModule {
static async withRSAKeys(
privateKeyPath: string,
publicKeyPath: string
): Promise<DynamicModule> {
return {
module: JWTModule,
providers: await this.createProviders(privateKeyPath, publicKeyPath)
};
}
Как видите, JWTModule
является динамическим c модулем. Теперь я хочу добавить экспортированный JWTService
в мои контроллеры конечных точек. Например:
@Module({
controllers: [InfoController]
})
export class InfoModule {}
@Controller()
export class InfoController {
constructor(private jwt: JWTService){};
Это не работает. Я должен импортировать EndpointModule
в моем InfoModule
, но это создает круговую зависимость. Есть ли способы избежать этого? Должен ли я изменить порядок своих модулей?