【问题标题】:Inject specific values into object constructor将特定值注入对象构造函数
【发布时间】:2018-12-24 07:31:19
【问题描述】:

我有几个接口的实现,它们每个都需要将自己的配置注入到构造函数中。我的问题是我是否可以以某种方式挂钩 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

【问题讨论】:

    标签: javascript dependency-injection inversion-of-control nestjs inversifyjs


    【解决方案1】:

    如果我很好地理解您的请求,您可以将提供程序与 useValue 或 useFactory 一起使用,具体取决于您在注入之前必须解决的问题。 我让你看一下文档的那部分。

    例如,您可以这样做 {令牌:'myToken',useValue:config.property }

    然后您只需将“myToken”注入您的构造函数。

    还 useFactory 允许你在返回值之前处理一些东西

    【讨论】:

    • 是的,我想我只是想将我的配置文件的一个自定义子集注入到各种对象中。
    猜你喜欢
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多