NodeJS:具有所有需求的单个对象,或代码中的 "standard" 路径?

NodeJS: Single object with all requires, or "standard" paths in code?

所以,我非常喜欢在 javascript 中创建全局命名空间。例如,如果我的应用名为 Xyz,我通常有一个对象 XYZ,我用属性和嵌套对象填充它,例如:

XYZ.Resources.ErrorMessage // = "An error while making request, please try again"
XYZ.DAL.City // = { getAll: function() { ... }, getById: function(id) { .. } }
XYZ.ViewModels.City // = { .... }
XYZ.Models.City // = { .... }

我在使用 Knockout 进行项目时发现了这一点,我真的很喜欢它,因为它没有对在上帝知道的地方声明的某些对象的狂野引用。一切都在一个地方。

现在。这对于前端来说没问题,但是,我目前正在为一个将在一个月内开始的项目开发一个基本框架,它使用 Node.js。

我想要的是,而不是 .js 文件中的所有需求,我有一个对象 ('XYZ'),它将所有需求放在一个地方。例如:

而不是:

// route.js file
var cityModel = require('./models/city');
var cityService = require('./services/city');

app.get('/city', function() { ...........});

我会做一个对象:

XYZ.Models.City = require('./models/city');
XYZ.DAL.City = require('./services/city');

并像这样使用它:

// route.js file
var cityModel = XYZ.Models.City;
var cityService = XYZ.DAL.City;

app.get('/city', function() { ...........});    

我并没有真正深入的知识,但是所有的需求都会被缓存并从内存中得到服务,如果缓存的话,所以在多个文件中重新请求不是问题。

这是一个好的工作流程,还是我应该坚持引用依赖项的标准程序?

编辑:我忘了说,这种工厂模式会阻塞主线程,还是会延迟服务器的启动?我只需要知道有什么缺点...我不介意代码中的要求,但我只是重命名了一个文件夹并且不得不通过五个文件来更改路径...这真的很不方便。

我认为这是个坏主意,因为您每次都将提供大量模块,而且您可能并不总是需要它们。您的命名空间对象将变得非常可怕。 require 将首先检查模块缓存,因此我会对服务器上需要的每个请求/脚本使用标准要求。