一、概念
一个文件就是一个模块,该文件能提供一个特定的功能,模块与模块之间可以存在一定的依赖关系,它的意义是可以使js文件引入js文件,这个概念听起来不太好懂,但是看到代码就明白了。
二、module.exports的使用
1.暴露
要想实现js文件被其他js文件调用,那么就需要使用module.exports将js文件中的函数或者方法暴露出去,在别的js文件中使用require进行引入。
格式:module.exports = 暴露的方法 || 属性
注意:每一个文件都是模块,实际上每个文件都是被一个函数包裹的,并且每个文件中只能有一个module.exports
2.引用
格式:const 模块名 = require("模块路径")
3.实例代码:
3.1在foo.js文件中输入代码:
function sum(a,b){
return a+b;
}
module.exports = sum;
3.2在bar.js中进行引入
const sum = require('./foo');
console.log(sum(1,2))
3.3 终端中输入node bar执行bar.js文件将会打印3,表明引入成功
三、exports的使用
exports 是 module.exports 这个对象的引用,相比于module.exports,它在一个文件中可以被引入多次
格式:exports.对象属性名 = 属性值
实例代码:
1.在foo.js文件中输入代码:
function sum(a,b){
return a+b;
}
exports.sum = sum;
exports.msg = function(){
console.log("这是exports中的msg对象")
}
2.在bar.js文件中输入代码:
//2.exports.对象 暴露后的引用
const obj = require('./foo');
console.log(obj.sum(1,2)) //以对象的方式使用
// 调用msg对象
obj.msg();
3.终端中输入node bar执行bar.js文件将会打印3和这是exports中的msg对象,表明引入成功
四、模块中的一些全局变量
__dirname:获取当前模块的路径
__filename:获取当前模块路径及文件名
五、模块分类
1.自定义模块(文件模块)
引入该模块的时候必须写路径
2.内置模块
nodejs 内置的,可以直接拿来使用,但是使用之前需要引入。
例如:const fs = require('fs'); // 内置模块只需要写模块名,不需要写路径
3.第三方模块
下载之后引入
例:express模块,首先在终端中输入命令 npm install express进行下载,然后在要使用的文件中输入const 自定义名称 = require("express")进行引入