تایپاسکریپت - آیا امکان مقداردهی اولیه ماژول ORM با پارامترهای پویا در NestJs وجود دارد؟


من از مونورپو NX با برنامههای NestJs استفاده میکنم (auth-service، other-service، و غیره).

من همچنین یک کتابخانه جداگانه برای ذخیره مهاجرتها libs/database.migrations و یک کتابخانه دیگر libs/database.mikro-orm برای راهاندازی MikroORM ایجاد کردم (برای قابل استفاده مجدد بودن).

کتابخانه database.mikro-orm باید به برنامهها یا کتابخانههای دیگر وارد شود تا به پایگاه داده متصل شود. مانع اصلی این است که وقتی من DatabaseMikroOrmModule را در سرویس احراز هویت AppModule وارد میکنم، میخواهم همه موجودیتها را به DatabaseMikroOrmModule منتقل کرده و به صورت پویا به MikroOrmModule > entities اضافه کنم.

در اینجا نمایی از DatabaseMikroOrmModule من است:

import { Module } from '@nestjs/common';
import { MikroOrmModule } from '@mikro-orm/nestjs';

@Module({
  imports: [
    MikroOrmModule.forRoot({
      entities: [ /* ENTITIES PASSED FROM OTHER APPS OR LIBS SHOULD GO HERE */],
      dbName: 'experimental-db',
      type: 'postgresql',
    }),
  ],
  ...
})
export class DatabaseMikroOrmModule {
  public static setEntities(entities) {
    /* MAY BE SOMEHOW ADD THEM FROM HERE */
  }
}

از برنامه:

import { DatabaseMikroOrmModule } from '@database.mikro-orm';
import { Module } from '@nestjs/common';

import { AppController } from './app.controller';
import { AppService } from './app.service';

@Module({
  imports: [DatabaseMikroOrmModule.setEntities([UserEntity, RoleEntity])],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

امیدوارم توضیحاتم به اندازه کافی واضح باشد.

نظری دارید؟

پاسخ شماره ۱

شما میتوانید این کار را با استفاده از ماژولهای داینامیک نِستجیاس انجام دهید، ماژولهای داینامیک را در واناگو یا مستندات نِستجیاس بررسی کنید