【问题标题】:Create nestjs module without dectorator创建没有析构器的nestjs模块
【发布时间】:2022-01-27 15:55:28
【问题描述】:

我有一个描述 nestjs 模块的对象

const objectAppModule = {
  imports: [],
  exports: [],
  controllers: [
    MyController
  ],
  providers: [
    provide: 'ControllerDependency',
    useValue: MyDependency
  ]
}

我想将此传递给NestFactory 以创建我的 Nest 应用程序。

NestJs 这样做的方法是创建一个类 MyAppModule 并添加一个装饰器。

@Module(objectAppModule)
export class ClassAppModule {}

然后将其传递给NestFactory

const app = await NestFactory.create(ClassAppModule);

我想达到同样的效果,但不使用 @Module 装饰器。装饰器为我的对象中缺少的类添加了一些功能,但我不太清楚需要什么。

我怎样才能复制这个功能来做这样的事情呢?

const app = await NestFactory.create(objectAppModule);

【问题讨论】:

  • 我认为您只需要添加一个与类相关的module 属性(它可以是一个空类)。你基本上是在做一个“DynamicModule”类型的匹配。 I do something similar here
  • 是的,它有效!我之前尝试过module: new DummyClass(),但现在我看到它是对类的引用,而不是类实例。谢谢

标签: javascript typescript nestjs


【解决方案1】:

为了充实@Jay McDoniel 的评论,以下方法奏效了;

export class DummyClass { }

const objectAppModule: DynamicModule = {
  module: DummyClass
  imports: [],
  exports: [],
  controllers: [
    MyController
  ],
  providers: [
    provide: 'ControllerDependency',
    useValue: MyDependency
  ]
}

const app = await NestFactory.create(objectAppModule);

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    • 2019-10-14
    • 2022-07-06
    相关资源
    最近更新 更多