当前位置: 首页 > 面试题库 >

node.js标准模块的全局变量?

卜鹏
2023-03-14
问题内容

我知道全局变量不好。

但是,如果我在框架的40个文件中使用节点的模块“ util”,那么最好仅将其声明为全局变量,例如:

util = require('util');

在index.js文件中,而不是在40个文件中写入该行?

因为我经常在每个文件中使用相同的5-10个模块,这样可以节省大量时间,而不是一直复制粘贴。

在这种情况下干不好吗?


问题答案:

每个模块应该是独立的。在每个模块的第一个需求之后,require都不会花费任何东西。

如果您想单独测试一个模块怎么办?您会遇到很多问题,因为它无法识别您的应用程序中存在的某些“全局”要求。

是的,即使在这种情况下,全局变量也很糟糕。全球人员几乎总是在破坏:可测试性,封装性和易于维护。

更新的答案,2012年1月

global现在,该对象是每个模块内部的全局对象。因此,每次在模块内部分配全局变量(无作用域)时,该变量便成为global该模块对象的一部分。

global因此,该对象仍然不是 全局 对象,因此不能如此使用。

2012年12月更新

global现在,该对象在应用程序中具有全局作用域,可用于存储需要从所有模块访问的任何数据/功能。



 类似资料:
  • 问题内容: 我在这里问: node.js是否需要继承? 有人告诉我可以通过省略var将变量设置为全局范围。 这对我不起作用。 即: 不能使_在必需文件上可用。我可以设置express ,但可以在其他地方使用。 有人可以确认这应该起作用吗?谢谢。 问题答案: 您可以这样使用:

  • 问题内容: main.py: module.py 程序打印: 主要-之前:20 func2:20 func1:10 主-20点后 “ var”是全局变量。我希望当我更改var的值时,无论变量’var’出现在哪里,它都会被更改。func1和func2之间的唯一区别是func1在另一个模块中。仍然,我不明白为什么func1和func2之间的’var’值不同。 问题答案: python中没有真正的全局变

  • 前面我们介绍了 os 模块和 re 模块,本章再介绍 Python 常用的一些标准模块: argparse base64 collections datetime hashlib hmac 其中: argparse 是用于创建命令行的库; base64 是用于 base64 编码和解码的库; collections 模块提供了 5 个高性能的数据类型,如 Counter,OrderedDict 等

  • 问题内容: 我有一个似乎很基本的问题,但我似乎在任何地方都找不到任何帮助。 XYZ.doSomething()无法说出NameError:未定义名称“ XYZ”即使从file_a完成的标准导入(如“ import sys”)似乎也无法使其在file_b中可用。我以为应该工作。我的理解错了吗?如果是,那么是否有办法在文件之间具有通用的导入和全局变量?(如果没有帮助,我曾经是C ++和Java程序员,

  • 我有以下文件: 我希望这个'app'变量是全局可访问的,因为其他文件是这样使用它的: 在webpack.config.js中,我有以下一行: 我想不出我错过了什么。我的app.js格式不正确吗?为什么仍然不能全局使用?

  • HMAC 是用于消息认证的加密哈希算法,全称是 keyed-Hash Message Authentication Code。HMAC 利用哈希算法,以一个密钥和一个消息作为输入,生成一个加密串作为输出。HMAC 可以有效防止类似 MD5 的彩虹表等攻击,比如将常见密码的 MD5 值存入数据库,可能被反向破解。 Python 的 hmac 模块提供了 HMAC 算法,它的使用形式是: hmac.n