nodejs模块介绍以及nodejs自定义模块的深入讲解

nodejs的模块分为我们自定义的模块、第三方模块、nodejs内置模块三大类

比如,

        我们前边说的sum.js就是自定义模块;

        而我们使用npm下载的各种各样的js插件、框架都是第三方模块,比如我们一开始举的例子calender,还有solarlunar(公历、农历互相转换)、chinese-finance-number(将数字转换成财务用的中文大写数字)、 base-64(base64加密)等等都是我们可以使用的第三方模块,就像java里面的jar包似的;

        而比如像fs,http等操作文件和处理http请求的模块是nodejs内置的,我们成为nodejs内置模块。

上篇教程我们使用exports导出了name变量和sum函数:

exports.func_sum=sum;

exports.var_name=name;

在test.js使用的使用格式如下:

var module_sum=require("./mymodules/sum.js")

module_sum.func_sum(1,100);

console.log(module_sum.var_name);

程序员嘛,就是没事也要给自己找点事,力求用最少的代码完成最多的事情,那么有人就纳闷了,我调用sum函数为什么还要通过module_sum.func_sum的方式?难道就不能在test.js直接使用函数名(1,100)的方式?当然可以,只不过不能再使用exports导出了,而需要使用module.exports来导出。修改一下sum.js:

var name="sum.js";
function sum(start,end){
	var sum=0;
	for(var i=start;i<=end;i++){
		sum+=i;
	}
	console.log(sum);
}
module.exports=sum;

在test.js中使用的话需要这样来搞:

var module_sum=require("./mymodules/sum.js")
module_sum(1,100);
console.log(module_sum.var_name);

运行结果:

image.png

显然,使用module.exports导出跟只使用exports在使用起来更便捷,不过使用module.exports导出只能导出一个,我们一般使用module.exports来导出一个对象(构造函数,比如有一个构造函数People需要导出,就可以使用module.exports,这样使用起来更方便)。当一个模块需要导出多个时使用exports;

当一个模块只需要导出一个的时候推荐使用module.exports,当然使用exports也是可以的,只不过使用的时候方式不同而已。

下面是使用module.exports的一个例子,编写People.js:

function People(name,age){
	this.name=name;
	this.age=age;
}
People.prototype.printInfo=function(){
	console.log("姓名:"+this.name+",年龄:"+this.age);
}
module.exports=People;

编写test.js:

var module_people=require("./mymodules/People.js")
var p=new module_people("zhao","28");
p.printInfo();

运行结果:

image.png

这里module_people指的就是People这个对象。

改为使用exports导出方式,People.js:

function People(name,age){
	this.name=name;
	this.age=age;
}
People.prototype.printInfo=function(){
	console.log("姓名:"+this.name+",年龄:"+this.age);
}
exports.class_People=People;

test.js:

var module_people=require("./mymodules/People.js")
var p=new module_people.class_People("zhao","28");
p.printInfo();

这里module_people指的就是exports这个对象。

运行结果是一样的:

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值