将特定值注入对象构造函数
Inject specific values into object constructor
我有一个接口的多个实现,它们每个都需要将自己的配置注入到构造函数中。我的问题是我是否可以以某种方式挂钩 NestJS 中的依赖注入系统(大概是 Inversify)以注入不仅是配置对象,而且是配置对象的特定子集。例如,如果 config.ts
看起来像这样:
const config = {
http: {
host: '0.0.0.0',
port: 3000,
},
adapters: {
disk: {
path: 'C:\path\to\my\stuff',
},
dropbox: {
api_key: 'asdfghjkl;',
api_secret: 'blahblahblahblahblah'
}
},
};
我想以我的磁盘实现接收 config.adapters.disk
、我的保管箱实现接收 config.adapters.dropbox
等的方式注入配置,而不仅仅是 config
如果我很理解您的要求,您可以使用带有 useValue 或 useFactory 的提供程序,具体取决于您在注入之前必须解决的问题。
我让你看一下文档的那部分。
举个例子你可以做
{ token: 'myToken', useValue: config.property }
然后你只需要将“myToken”注入你的构造函数。
此外,useFactory 允许您在返回值之前处理某些内容
我有一个接口的多个实现,它们每个都需要将自己的配置注入到构造函数中。我的问题是我是否可以以某种方式挂钩 NestJS 中的依赖注入系统(大概是 Inversify)以注入不仅是配置对象,而且是配置对象的特定子集。例如,如果 config.ts
看起来像这样:
const config = {
http: {
host: '0.0.0.0',
port: 3000,
},
adapters: {
disk: {
path: 'C:\path\to\my\stuff',
},
dropbox: {
api_key: 'asdfghjkl;',
api_secret: 'blahblahblahblahblah'
}
},
};
我想以我的磁盘实现接收 config.adapters.disk
、我的保管箱实现接收 config.adapters.dropbox
等的方式注入配置,而不仅仅是 config
如果我很理解您的要求,您可以使用带有 useValue 或 useFactory 的提供程序,具体取决于您在注入之前必须解决的问题。 我让你看一下文档的那部分。
举个例子你可以做 { token: 'myToken', useValue: config.property }
然后你只需要将“myToken”注入你的构造函数。
此外,useFactory 允许您在返回值之前处理某些内容