栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将公共变量传递到Node.js中单独的模块中的最佳方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将公共变量传递到Node.js中单独的模块中的最佳方法是什么?

我发现使用依赖注入来传递东西是最好的样式。确实看起来像您拥有的东西:

// App.jsmodule.exports = function App() {};// Database.jsmodule.exports = function Database(configuration) {};// Routes.jsmodule.exports = function Routes(app, database) {};// server.js: composition rootvar App = require("./App");var Database = require("./Database");var Routes = require("./Routes");var dbConfig = require("./dbconfig.json");var app = new App();var database = new Database(dbConfig);var routes = new Routes(app, database);// Use routes.

这有很多好处:

  • 它将迫使您将系统分为具有明确依赖关系的组件,而不是将依赖关系隐藏在文件调用它们
    require("databaseSingleton")
    或更糟的位置的中间
    global.database
  • 它使单元测试很简单:如果我想测试
    Routes
    孤立地看,我可以用假注入它
    app
    database
    PARAMS和测试只有
    Routes
    代码本身。
  • 它将所有对象图布线都放在一个位置,即合成根(在本例中为
    server.js
    应用程序入口点)。这使您可以查看一个地方,以查看系统中的所有组件如何组合在一起。

我所见到的对此更好的解释之一是对 .NET 优秀著作 Dependency Injection的 作者Mark
Seeman的采访
。它同样适用于Javascript,尤其是Node.js:通常用作经典服务定位器,而不仅仅是模块系统。 __

require



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484784.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号