Node.js模块

模块功能类似于dll文件,载入该模块,就可以调用该模块的函数和变量。将可重用的代码封装在一模块中,这样可以达到可重复利用、减少代码量,提高开发效率的目的。本篇文章介绍Node.js模块的自定义和使用。

模块定义编写有2种方式:将需要“暴露”的变量和函数,赋值给exports和module.exports对象属性。exports和moudle.exports的区别与联系如下:

1)exports对象实际是moudle.exports对象的“引用”,require载入使用exports对象实现的模块时,本质上也是载入moudle.export对象【exports = module.exports = {}】。在使用exports对象定义模块时,为其设置属性,实际上是给module.exports对象设置属性。

2)值得注意的是,如果在使用exports对象自定义模块时,如果“显示”地给module.exports对象设置属性,则给export对象设置的属性将被“覆盖”掉不复存在。

3)一般推荐使用exports对象定义自己封装的模块,因为载入模块时,相当于在导出对象上挂属性,该属性对调用模块直接可见,作用类似static静态类,调用方便。除非你打算当成一个实例类型使用,需要构造函数做初始化时,才推荐使用module.exports对象定义模块。

创建Exports.js脚本

/**
 * 使用exports对象定义模块
 */

var time = 0.5;
var sum = function(a,b)
{
   var res = (a+b)*time;
   console.log("sum计算结果:",res);
   return res;
}

exports.time = time;
exports.sum = sum;

创建ModuleExports.js脚本

/**
 * 使用module.exports对象定义模块
 */
var Student = function(age,name)
{
   this.age = age;
   this.name = name;

   this.printInfo = function(){
      console.log("学生的名字:",this.name,"年龄:",this.age); 
   };
}

module.exports = Student;

创建测试调用自定义模块脚本ModuleExportsTest.js脚本

/**
 * 自定义模块调用
 */

const myExports = require("./Export");
//直接访问
myExports.sum(2,3);

const myModuleExports = require("./MuduleExports");
//创建实例
var student = new myModuleExports(6,"Jue");
//再访问
student.printInfo();

运行结果如下

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Data菌

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值