博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nodejs的全局变量
阅读量:5882 次
发布时间:2019-06-19

本文共 1557 字,大约阅读时间需要 5 分钟。

概要

在 Node.js 中有两种创建全局变量的方法:

(1)使用 global 对象,

(2)使用 module.export 。

较小的应用使用 global 对象,大型应用使用 module.export。

详细讲解

我们在使用Node.js 的模块时,例如 Express.js ,有时候我们需要创建一些全局变量,用于全局共享,那么该如何做呢?

方法一:使用global 对象

首先,让我们来分析一下这个global 对象。打开终端输入node,再输入"global",看看这个对象到底有些什么。: 

$ node>global复制代码

可以看到这是一个庞大的对象!

在一个 Node.js 的进程中,所有的其他对象都是依附在 global 对象上。如果你熟悉浏览器中的 JavaScript 环境,global 对象和 Window 对象相似。

接下来做一些测试:

> global.nameundefined> global.name = 'Hello Global''Hello Global'> global.name'Hello Global'> GLOBAL.name'Hello Global'> (node:14432) [DEP0016] DeprecationWarning: 'GLOBAL' is deprecated, use 'global'delete global.nametrue> global.nameundefined> GLOBAL.nameundefined> name = "Lihai"'Lihai'> GLOBAL.name'Lihai'> var age = 23undefined> GLOBAL.age23复制代码

①可以看出,GLOBAL 其实是 global 的一个别名。name == global.name == GLOBAL.name

②无论是使用 var 声明的变量,还是未使用 var 声明的变量都添加到了 global 对象上。

③然而,有一点不同之处在于,在你创建的模块中,使用 var 关键字声明的变量只属于这个模块,属于局部变量。那些未使用 var 关键字声明的变量则附加到 global 对象上。

在模块中全局声明的变量可以通过它的变量名直接被任何其他的模块引用,而不用通过 global 对象的引用;但是如果在模块内定义了和全局变量同名的局部变量,访问全局变量时就要加global了。

如下:

var city = 'nanjing';console.log(global.city); // 'beijing'console.log(city); // 'nanjing'复制代码

但是,别过度使用全局变量。
方法二:使用module.exports

是的,还有一个方法 —— module.exports,让我用一个例子来证明:

main.js 中的内容:

exports.company = 'Google';var m = require('./mod');复制代码

mod.js 中的内容:

var company = require('./main').company;console.log(company);复制代码

现在来看看它怎么运作的:

$ node main.jsGoogle复制代码

注意:引用一个已经引用了另外一个模块的模块,只会创建一个包含前一个模块的引用,这并不意味着会严重增加内存的使用。同时,因为不存在真正的重复包含,模块中所有的初始化函数都不会重复执行一次。

引用文章

感谢先辈和大牛的文章,坚持学习,坚持分享,让代码的未来更广阔!

Global Variables in Node.js  

转载地址:http://pgpix.baihongyu.com/

你可能感兴趣的文章
【python】编程语言入门经典100例--35
查看>>
cookie增加Secure属性
查看>>
360浏览器兼容模式 - 兼容问题
查看>>
WebLogic11g-负载分发
查看>>
appcan是什么
查看>>
美国破获世纪“银行大劫案”隐形罪犯不再拿刀枪
查看>>
我的友情链接
查看>>
TOP 10 开源的推荐系统简介
查看>>
springcloud(第五篇)springcloud turbine
查看>>
springcloud(第五篇)springcloud turbine
查看>>
单臂路器实验不同vlan通信
查看>>
dedecms横向登录
查看>>
XmlToJson-xml对象转换为Json对象类
查看>>
pwd 命令
查看>>
MySQL备份(基于xtrabackup)的实战
查看>>
后腰椎间盘突出时期的生活
查看>>
MySQL Study之--Mysql数据库备份工具(mysqldump)
查看>>
android studio
查看>>
使用Graphviz下的dot工具绘制图像
查看>>
suid验证
查看>>