nodejs的良好依赖注入模块

Posted

技术标签:

【中文标题】nodejs的良好依赖注入模块【英文标题】:good dependancy injection module for nodejs 【发布时间】:2015-02-08 21:59:34 【问题描述】:

我正在寻找一个好的nodejs依赖注入模块, 我实现了一个特殊的记录器模块,并且无论我在文件夹层次结构中的位置如何,我都希望能够获取记录器的实例。 我不能简单地使用 requirejs,因为使用 requirejs 我需要模块的完整相对路径。 有没有合适的标准解决方案?

【问题讨论】:

【参考方案1】:

我还建议遵循 Node.js 约定。

可以将location of the current file 存储在例如使用dirnamefilename 的主文件中(假设在项目的根目录)。然后,将其存储在global variable 中,可以在您的应用程序中的任何位置访问它。不过我觉得它很脏。

【讨论】:

【参考方案2】:

我仍然建议您使用 require() 方式,因为它是 node.js 的原生方式

不过,如果您不想为相对路径烦恼 - 您的模块应该位于项目内的 node_modules 文件夹中。为此,您可以通过npm 安装它。

但是在安装它之前,你当然应该在某个地方发布它。

我建议您将此作为练习:

    为您的模块创建一个存储库(github 用于公共存储库,bitbucket 用于私有存储库)

    为您的模块创建一个package.json 文件。这是一个例子:

    
        "name": "your-module",
        "private": true,
        "repository": 
            "type": "git",
            "url": "git@bitbucket.org:username/your-module.git"
        ,
        "main": "index.js",
        "version": "1.0.0",
        "dependencies": 
        
    
    

    像这样将此模块的依赖项添加到您的主 package.json

    "your-module": "git+ssh://git@bitbucket.org:username/your-module.git#1.1.0",
    

    运行npm install

    利润

【讨论】:

以上是关于nodejs的良好依赖注入模块的主要内容,如果未能解决你的问题,请参考以下文章

手动TypeScript角度依赖注入在ChangeDetectorRef上失败

nodejs学习笔记

.NET Core Web API使用依赖注入(DI)进行服务配置一

2.3了解AngularJS模块和依赖注入

SPRING01_概述配置文件bean实例化依赖注入的方式依赖注入的数据类型分模块开发API使用

讲解依赖注入的好文-目前唯一