node.js - AngularJS 注入(inject)器和 NodeJS 之间的区别 require 模块

标签 node.js angularjs dependency-injection npm

我对基于 AngularJS 和 NodeJS 的依赖注入(inject)有疑问。

AngularJS 的 $injector 和 NodeJS 的 require 模块有什么区别吗?

对于 Angular 应用程序,使用具有 MEAN STACK 架构的 require 模块而不是 $injector 会很好吗?为了什么求婚?

最佳答案

它们完全不同。

Angular 的 $injector 是 Inversion of contorl 的经典例子.不是每个模块都获取它们的依赖项,而是有一个 $injector,它的工作是为在运行时请求它们的模块提供依赖项。这使得在测试中切换依赖关系变得非常容易,例如,因为没有什么会强制您传递预期的依赖关系——您可以传递模拟版本。

NodeJS 的 require 方法只允许您请求其他 javascript 文件并可以访问它们在 module.exports 上设置的任何属性。

它们并不相互排斥。如果不同的 Angular 模块位于单独的文件中,您可以使用 browserify(前端需要 nodejs)来加载它们。然而,它本质上等同于将它们串联起来。如果您想根据需要动态加载 Angular 模块,则必须使用 RequireJs 之类的东西。

相反,您可以通过将内容传递到模块而不是尝试从模块中获取它来在 Node 中使用控制反转。在许多情况下,这实际上是一种很好的做法。

关于node.js - AngularJS 注入(inject)器和 NodeJS 之间的区别 require 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22180653/

相关文章:

javascript - 如果 Javascript 中的日期格式不正确,则更改日期格式

c# - 在 Unity 中使用 IOptions

entity-framework - 实现具有应由 DI 容器解析的依赖项的被动属性

javascript - 在 Windows 上指定 Sequelize sqlite 路径

node.js - 由于 jsPDF,Webpack HMR 抛出 React syntheticEvent 错误

node.js - Google Cloud Storage 返回错误的身份

asp.net - 使用 NInject 连接依赖项的选项

javascript - 根据对象的动态键更新表

jquery - ng-repeat 排序箭头在 javascript 数据表中不起作用

javascript - AngularJS:将表达式绑定(bind)到组件