我正在使用NX个Monorepo和NestJs个应用程序(auth-serviceother-service等).

我还创建了用于存储迁移libs/database.migrations的分离库和用于MikroORM初始化的另一个库libs/database.mikro-orm(可重复使用).

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 {}

我希望我的解释足够清楚.

有什么主意吗?

推荐答案

您可以使用nestjs动态模块判断dynamic modules wanago来实现这一点 或nest js docs

Typescript相关问答推荐

为什么当我试图从数据库预填充时,属性x不存在于类型{错误:字符串; }.ts(2339)上?

TS 2339:属性切片不存在于类型DeliverableSignal产品[]上>'

如何从具有给定键列表的对象类型的联合中构造类型

更新:Typescript实用程序函数合并对象键路径

TypeScript Page Routing在单击时不呈现子页面(React Router v6)

为什么TypeScript失go 了类型推断,默认为any?''

contextPaneTitleText类型的参数不能分配给remoteconfig类型的关键参数'""'''

如何按不能保证的功能过滤按键?

是否存在类型联合的替代方案,其中包括仅在某些替代方案中存在的可选属性?

使用订阅时更新AG网格中的行

TypeScrip中的类型安全包装类

如何从MAT-FORM-FIELD-MAT-SELECT中移除焦点?

编译TypeScrip项目的一部分导致错误

Angular 16将独立组件作为对话框加载,而不进行布线或预加载

TypeScrip-如何自动推断UNION变量的类型

使用Type脚本更新对象属性

VITEST警告:当前的测试运行器不支持After Each/teardown挂钩

如何使对象同时具有隐式和显式类型

Vite+Chrome扩展 list v3-;不能在模块外使用import语句;对于inpage脚本

断言同级为true或抛出错误的Typescript函数