为什么不在NodeJS中使用过多的GLOBAL变量?

时间:2015-12-18 11:16:53

标签: javascript node.js mongoose

项目中的所有文件都可以访问GLOBAL变量,它通常是开发人员的优势,因为您只定义了一次而且您不需要从其他文件导出但我听说如果我使用太多GLOBAL会出现一些问题nodeJS中的变量。      而且,我想使用我的mongoose模型作为全局变量,因为我大多数时候都使用它们几乎每个项目文件,这是真的吗?

2 个答案:

答案 0 :(得分:1)

您可以使用全局变量,但更安全的是您在全局命名空间下感染所有应用程序的变量,而不是创建可能已被项目中其他库使用的大量单个变量。 定义包含变量的全局名称空间的更安全的方法是:

var MY_APP_NAMESPACE = {
  app_name: 'My App',
  app_version: '0.0.1'
};

然后,您可以使用以下语法获取全局变量:

function myFunction() {
  var version = MY_APP_NAMESPACE.app_version;
}

答案 1 :(得分:1)

这是一个古老的问题。您不使用全局命名空间,因为存在冲突的危险 - 其他人(如果您正在处理GIT项目)可能会声明具有相同名称的相同全局,然后会出现问题。

另外,全局变量使调试变得困难。例如,如果变量包含错误的值,那么在代码库中的哪个位置设置该值?对于大型项目来说并不总是显而易见的。