Node.js 中的全局对象global,引入与导出

1.Node.js全局对象global
在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。
注意: 最好不要使用 var 定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。
打开命令行,输入 node 回车,然后输入 this 或者global就可以看到全局对象。
2.模块的引入
使用require()加载模块文件,参数值是字符串,如非nodejs自有模块,需要指定模块文件的完整路径及文件名。可以使用相对路径./或绝对路径/。

//nodejs自有模块
const http = require("http");
const path = require("path");
const fs = require("fs");
//非nodejs自有模块
const scoreData=require('./score.json');

3.模块的导出
node中是模块作用域,默认文件中所有的成员只在当前文件模块有效
对于希望可以被其他模块访问的成员,我们就需要把这些公开的成员都挂载到exports接口对象中就可以导出多个成员
(1) 导出单个成员(函数,字符串)

//modules.exports = 值;
module.exports='hello';

(2) 导出多个成员(必须在对象中)

//exports.属性名 = 属性值;
exports.a = 123;
exports.b ='hello';
exports.c=function(){
	console.log('ccc');
}

注意:exports 和 module.exports 的区别
(1)相同点:
在node中,每个模块中都有一个 module 对象,module 对象中有一个 exports 对象(默认是空对象),我们可以把需要导出的成员都挂载到 module.exports 接口对象中,也就是:moudle.exports.xxx = xxx 的方式,但是每次都 oudle.exports.xxx = xxx 很麻烦所以 Node 为了方便,同时在每一个模块中都提供了一个成员叫:exports
exports === module.exports 结果为 true
所以对于:moudle.exports.xxx = xxx 的方式 完全可以:expots.xxx = xxx
(2)不同点
当一个模块需要导出单个成员的时候,这个时候必须使用:module.exports = xxx 的方式
不要使用 exports = xxx, 因为这样不管用
因为 每个模块最终向外return的是module.exports
而 exports 只是 module.exports 的一个引用
所以即便为 exports = xx 重新赋值,也不会影响 module.exports
但是有一种赋值方式比较特殊:exports = module.exports 这个用来重新建立引用关系的,而和之前的 exports 就没有关系了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值