Согласно документации:
Гнездо инкапсулирует провайдеров внутри области модуля.Вы не можете использовать поставщиков модулей в другом месте, не импортируя их.
Затем я создал модуль, который инкапсулирует репозитории typeorms, и создал поставщиков для услуг (бизнес-логика).Но по какой-то причине, если я импортирую DatabaseModule в другой модуль и в его конструктор @InjectRepository, параметр не будет нулевым, как ожидалось.TypeOrmModule никогда не экспортировался, и репозитории не должны быть доступны.
Я что-то здесь неправильно понимаю?
Бонусный вопрос: Есть ли более простые способы отделить сервисы от другого пакета, чем приведенный ниже код?
const providers: Provider<any>[] = [
{
provide: OrganizationService,
useFactory: (repository: Repository<Organization>) => {
return new OrganizationService(repository);
},
inject: [getRepositoryToken(Organization)],
}, {
provide: FileService,
useFactory: (repository: Repository<File>) => {
return new FileService(repository);
},
inject: [getRepositoryToken(File)]
}
];
@Module({
imports: [TypeOrmModule.forFeature([Organization, File])],
providers: [...providers],
exports: [...providers]
})
export class DatabaseModule { }