我真的很喜欢依赖注入是如何在角度中完成的,所以我想在节点中使用类似的模式。有许多模块往往是DI容器,并且不容易选择。
在节点中是否有使用DI的真实示例?在这种情况下如何构建应用程序?
答案 0 :(得分:1)
我在嘲笑测试方面有一个非常性感的答案,然后我重新阅读了你的问题......呃。
整个exports
/ require
机制提供了依赖注入,您只需将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');
}
然后当你需要它时,只需require('./underdash')
,现在你不必关心你实际使用的低空间库,并且可以在开关的转换处改变它 - <因为API是相同的,否则你将会有一个糟糕的时间。
答案 1 :(得分:0)
I developed and have been using systemic in production for a year. It's a re-write of a electrician, developed for TES (heavy node.js users). Both are less magical than angular's DI mechanism. You might also like diogenes.
There's an example systemic application here.