将特定值注入对象构造函数

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 允许您在返回值之前处理某些内容