一、模块化开发----大型复杂项目中的一种开发模式
核心:不是直接导入加载外部js文件,而是导入外部js文件中导出的数据。
nodejs 中的模块化:将实现一个功能的代码定义在一个外部js文件中(之前是导入这个文件,并且会立即执行这个文件的所有内容)
二、模块化开发的分类
1、自定义模块----程序员自己开发的模块
2、内置模块-------nodejs开发的模块
3、第三方模块----其他程序员开发的模块
三、自定义模块
程序员通过 nodejs 导出 导入 语法定义的 模块发开发的外部js文件
在模块化文件中导出数据:
(1)、module.exports={ };直接定义一个对象,以对象的形式导出数据
//js文件内的内容
let bool=true;
let str='花海';
let int=100;
let arr=[100,200,300];
let obj={name:'周杰伦',age:18};
function fun1(){console.log(111)};
function fun2(){console.log(222)};
//定义要导出的数据
module.exports={bool,str,int,arr,obj,fun1,fun2}
(2)、module.exports.属性=属性值;设定属性属性值的 方式导出
//js文件内的内容
let bool=true;
let str='花海';
let int=100;
let arr=[100,200,300];
let obj={name:'周杰伦',age:18};
function fun1(){console.log(111)};
function fun2(){console.log(222)};
//定义要导出的数据
module.exports.bool=bool;
module.exports.str=str;
module.exports.int=int;
module.exports.arr=arr;
module.exports.obj=obj;
module.exports.fun1=fun1;
//再重新创建一个js文件
const modA=require('导出数据的js文件路径');
console.log(modA);
四、内置模块
内置模块是nodejs自己开发的模块化程序,只需要加载导入文件就可以了。
内置fs模块,可以 读取 设定 文件中的内容
(1)读取文件
异步读取文件:
readFile(参数1,参数2,参数3:function(参1,参2){})
同步读取文件:
readFileSync(参数1,参数2,参数3:function(参1,参2){})
参数1: 读取文件的路径
参数2: 读取文件的编码格式
参数3: 匿名函数
匿名函数参数1==>存储 报错信息
匿名函数参数2==>存储 读取的外部文件的数据信息,读取成功是 null;读取失败 是 undefined。
(2)写入文件
异步写入文件:
writeFile(参数1,参数2,参数3:function(){});
同步写入文件:
writeFileSync(参数1,参数2,参数3:function(){});
参数1: 写入文件的路径地址
参数2: 写入文件的内容
参数3: 匿名函数
有这个文件写入设定的内容
没有这个文件 创建这个文件 写入设定的内
五、第三方模块
其他程序员开发的模块==>需要先下载模块,通过require('路径')导入数据