首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据环境处理InversifyJS配置

根据环境处理InversifyJS配置
EN

Stack Overflow用户
提问于 2018-06-01 08:52:29
回答 1查看 522关注 0票数 1

我一直在使用InversifyJS来处理类型记录服务器上的DI。关键是我希望根据环境在代码上注入不同的实现。

有一个常见的场景,当我在笔记本电脑上开发时,我想在生产中使用S3,但是使用本地文件夹。由于我使用一个interface来进行这种通信,一个选项是有两个带有容器信息的不同配置文件,但是在我的服务上加载容器是非常脏的。

另一个选项是有一个配置文件,但根据环境配置一个或另一个实现。就像这样:

代码语言:javascript
复制
container.bind<IStorageRepository>(SERVICE_IDENTIFIER.STORAGE).to(
    (process.env.ENVIRONMENT === 'prod') ? S3StorageRepository : LocalFolderStorageRepository
);

但我一点也不喜欢这样,因为如果你有三个(或更多)不同的环境,有不同的需求,那么它就会变得有点疯狂。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-12-23 03:42:50

在您的示例中,选择正确实现的过程从.to()中移出。你可以在上面处理。分配给一个链接并将它传递到那里。在我的项目中出现这样的情况。我将容器组装过程隐藏在构建器函数中。以命令的方式你可以处理所有事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50639575

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档