我真的很喜欢依赖注入是如何在角度完成的,所以我想在节点中使用类似的模式.有很多模块往往是DI容器,不容易选择.
是否有任何在节点中使用DI的实际例子?在这种情况下如何构建应用程序?
解决方法
我对嘲笑测试有一个非常性感的答案,然后我重新阅读你的问题并且……呃.
整个导出/需求机制提供依赖注入,您可以通过简单地更改require(‘module’)指向新模块来模拟 – 或替换 – 您需要的任何模块.
您甚至可以包装您可能想要切换的任何其他API兼容的库集.例如,如果您在决定从underscore移动到lodash时接近神经衰弱,您可以创建一个名为’underdash.js’的模块:
if (process.env.COLD_SWEATS || process.env.SHAKING || process.env.PALPITATIONS) { module.exports = exports = require('underscore'); } else { module.exports = exports = require('lodash'); }
然后当你需要它时,只需要(‘./ underdash’),现在你不必关心你实际使用的低空间库,并且可以在交换机的翻转时更改它 – 如此长的API是相同的,否则你会有一个糟糕的时间.