如何从应用程序模块获取子模块内的自定义提供程序?

问题描述 投票:0回答:2

我只有两个模块:

ᅠDriver
    ^
    |
    |
   App

在App模块中,我添加了一个自定义提供商(金额)

@Module({
  imports: [DriverModule], 
  controllers: [],
  providers: [
    {
      provide: "amount",
      useValue: "200"
    }
  ]
})

我想将它获取到Driver模块的控制器中,如下所示:

@Controller('driver')
export class DriverController {
constructor(@Inject("amount") private amount: number) { .. }

但是 Nest 抛出错误:

Nest can't resolve dependencies of the DriverController (?). Please make sure that the argument amount at index [0] is available in the DriverModule context.

NestJS 可以从另一个模块获取依赖吗?

我不知道如何做不同的事情

node.js dependency-injection nestjs inversion-of-control nest
2个回答
0
投票
  1. 添加出口金额
    App.module
  2. AppModule
    添加到
    Driver.module
  3. 上的导入

当您执行这些操作时,它可能会起作用,但是按层次结构提供和使用

App.module
中的内容并不是很正确。


0
投票

您可以定义一个特定的模块(例如

AppModule
)并从您的
ConfigModule
导入它,而不是直接在
DriverModule
中定义该配置。这是比从子模块导入
AppModule
更好的做法。

© www.soinside.com 2019 - 2024. All rights reserved.