具有许多导入的节点中的dependency injection
我试图找出哪里dependency injection有它在节点的地方。 即使我知道Java是如何工作的,而且我一直在阅读无数的博客,我似乎无法理解它。
networking上的例子是微不足道的 。 他们并没有真正显示为什么需要DI。 我更喜欢一个复杂的例子。
我看了下面的框架:
https://github.com/young-steveo/bottlejs
http://inversify.io/
现在,Node使用模块模式。 当我做一个导入它接受一个单身人士,因为这是什么节点,它caching模块,除非工厂模式用于返回一个新的实例(返回新的MyThing())。
现在dependency injection的主要function是解耦所有的东西。
当人们说,我得到的目标是…要从模块的顶部删除所有import的概念。
我今天写的是:
'use strict'; // node modules import os from 'os'; ...8 more modules here import fs from 'fs'; // npm modules import express from 'express'; ...8 more modules here import _ from 'lodash'; // local modules import moduleOne from './moduleOne'; ...8 more modules here import moduleTen from './moduleTen'; //...rest of my code
有30个import是一个改变的痛苦。 在多个文件中具有相同的30是更大的痛苦。
我正在阅读https://blog.risingstack.com/fundamental-node-js-design-patterns/ ,我看着dependency injection区域。 在例1依赖被传递,罚款。 那30几呢? 我不认为这是好的做法?
如何构build这样一个具有这么多依赖的应用程序? 并使unit testing和嘲笑友好?
实现一个Ioc模式作为dependency injection在你的项目中总是一个非常好的select,这使得你可以分离和粒化你的软件,使其更加灵活和不太僵化。 节点js模块patter很难在你的代码中实现抽象,在良好的体系结构中总是需要这样的抽象,而且这样做,使你的代码符合SOLID的D [Dependency Inversion],并且更容易实现SOI。
如果你想看到一个DI的用例,请参阅这个库的自述文件,也是节点Jems DI的一个DI库,它将使模块中的长input列表无效,并且不会让你100%地依赖元数据或迫使你在依赖于DI库的模块中编写额外的代码,或者有时不需要你的业务逻辑,总是在DI库和实例激活之间进行一些抽象。
- dependency injection库 – 重命名注入的值
- 有没有类似于angular度注射器的nodejs的任何dependency injection解决scheme?
- 在节点js中构build可伸缩的tcp服务器
- 如何创build一个可重用的Socket.IO模块
- 模拟Node中的依赖(主要是unit testing)
- 如何在Nodejs中进行有效的dependency injection?
- 如何提供诸如数据库,logging器等依赖关系到底层库?
- 在node.js中使用带有Repository模式的SQL Server和mongodb
- 这是在Node中做dependency injection的正确方法吗?