Nodejs学习笔记——模块化

Node.js采用的是CommonJs规范,在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。

在编写每个模块时,都有require、exports、module三个预先定义好的变量可供使用

Node.js中模块的分类:

  • 核心模块(已经封装好的内置模块)
  • 自己定义的模块
  • 第三方的模块(npm下载下来的)

require

require函数用来在一个模块中引入另外一个模块

传入一个模块名,返回一个模块导出对象

用法:let cc = require(“模块名”) ,其中模块名可以用绝对路径也可以用相对路径,模块的后缀名.js可以省略

	let cc1 = require('./main.js')
	let cc2 = require('home/src/main.js')
	let cc3 = require('./main')

require()函数用两个作用:

  • 执行导入的模块中的代码;
  • 返回导入模块中的接口对象;

exports

exports对象用来导出当前模块的公共方法或属性

别的模块通过require函数使用当前模块时得到的就是当前模块的exports对象

用法:exports.name ,name为导出的对象名

	exports.add = function () {
		let i = 0
		console.log(++i)
	}
​
	导出一个add方法供其他模块使用

module.exports

module.exports用来导出一个默认对象,没有指定对象名

常见于修改模块的原始导出对象。比如原本模块导出的是一个对象,我们可以通过module.exports修改为导出一个函数

	module.exports = function () {
	  console.log('hello world!')
	}

module.exports与exports区别

  • Node中每个模块都有一个module对象,module对象中的有一个exports属性为一个接口对象,我们需要把模块之间公共的方法或属性挂载在这个接口对象中,方便其他的模块使用这些公共的方法或属性。
  • Node中每个模块的最后,都会return: module.exports。
  • Node中每个模块都会把module.exports指向的对象赋值给一个变量exports,也就是说:exports = module.exports。
  • module.exports = XXX,表示当前模块导出一个单一成员,结果就是XXX。
  • 如果需要导出多个成员时必须使用exports.add = XXX; exports.foo = XXX;或者使用module.exports.add = XXX; module.export.foo = XXX;。

模块的初始化

一个模块中的JS代码仅在模块第一次被使用时执行一次,并且在执行的过程中进行初始化一次

之后缓存起来便于后续继续使用

主模块

通过命令行参数传递给NodeJS以启动程序的模块被称为主模块

主模块负责调度组成整个程序的其它模块完成工作。例如通过以下命令启动程序时,main.js就是主模块

	$ node main.js // 运行main.js启动程序,main.js称为主模块

实例

index1.js:

	function fn(){
	    console.log(123);
	}
	
	exports.fn = fn;

index2.js:

	let cc1 = require('./index1.js')
	
	console.log(cc1);
	cc1.fn();

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值