【问题标题】:Why should not use too much GLOBAL variables in NodeJS?为什么不应该在 NodeJS 中使用太多的 GLOBAL 变量?
【发布时间】:2016-03-25 02:11:13
【问题描述】:

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

【问题讨论】:

  • 在我看来,坚持使用导入/导出模块是一种更好的方法,因为它迫使您牢记架构。过多的全局变量很容易导致错误和缺乏测试。
  • 那么,内存使用有什么问题吗?
  • 我不这么认为。 GLOBAL 的一个很好的用途是用于常量(环境数据),最终用于您将在应用程序中随处使用的库(例如:lodash)。如果您认为需要在 GLOBAL 命名空间中添加其他内容,这将是缺乏关注点分离的线索。此外,它还可能导致多个组件之间发生冲突。

标签: javascript node.js mongoose


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-09
      • 2014-12-08
      • 2023-03-16
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多