nodejs----模块module学习

在nodejs中一个文件就是一个模块。nodejs提供了exports和require两个对象,其中exports是模块公开的接口,require用于从外部获取一个模块的接口,即所获取模块的exports对象。

演示示例:

新建一个module.js文件,代码如下:

var name;
exports.setName = function(thyname){
    name=thyname;
}
exports.sayHello = function(){
    console.log('Hello '+name);
}

 

同一目录下,新建一个getmodule.js文件,代码如下:

var myModule = require('./module');
myModule.setName('Joy');
myModule.sayHello();

 

运行示例:在安装了nodejs环境下,打开cmd命令窗口,进入代码文件所在文件夹,运行node getmodule.js。结果如下:

 

以上示例中,module.js通过exports对象把setName和sayHello作为模块的访问接口,在getmodule.js中通过require('./module')加载这个模块,然后就可以直接访问module.js中exports对象的成员函数了。npm提供的上万个模块都是通过这种简单的方式搭建起来的。

 

单次加载

require不会重复加载模块,也就是说无论调用多少次require,获得的模块都是同一个。

我们在getmodule.js的基础上作修改如下:

var hello1 = require('./module');
hello1.setName('Joy');

var hello2 = require('./module');
hello2.setName('Joy2');

hello1.sayHello();

运行结果:

运行后发现输出结果是hello Joy2,这是因为hello1和hello2指向的是同一个实例,因此hello1.setName的结果被hello2.setName覆盖,最终输出结果是由后者决定的。

转载于:https://www.cnblogs.com/joyho/articles/3699104.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值