javascript - 将特定值注入(inject)对象构造函数

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

我有几个接口(interface)的实现,它们每个都需要将自己的配置注入(inject)到构造函数中。我的问题是,我是否可以以某种方式 Hook NestJS 中的依赖注入(inject)系统(大概是 Inversify),不仅注入(inject)配置对象,还注入(inject)配置对象的特定子集。例如,如果 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'
        }
    },
};

我想以这样的方式注入(inject)配置:我的磁盘实现接收 config.adapters.disk,我的 dropbox 实现接收 config.adapters.dropbox 等。只需配置

最佳答案

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

作为例子,你可以这样做 { token: ‘myToken’, useValue: config.property }

然后您只需将“myToken”注入(inject)构造函数即可。

useFactory 还允许您在返回值之前处理某些内容

关于javascript - 将特定值注入(inject)对象构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51367112/

相关文章:

php - 控制反转 : Have you ever had to decide what Dependency Injection framework is best for a project? 您选择了哪一个,为什么?

c# - IOC : Wiring up dependencies on event handlers

c# - 抽象单例背后的 IoC 容器——做错了吗?

javascript - 如何在 CoffeeScript 中新定义的函数上调用函数

Javascript -> 尝试从数组中动态添加单选按钮

Angular - 通过@Input 属性进行依赖注入(inject)

java - Java Spring @Autowired 如何处理从多个接口(interface)继承的接口(interface)?

dependency-injection - 使用 Autofac 注入(inject)特定类型

javascript - OAuth:可以以 json 形式返回访问 token 吗?

javascript - 单击(右键单击)使用传单 map 库获取图像叠加层的像素坐标