书接上回,关于Node.js我们做了一个大致的了解,今天本篇文章主要说一下Node.js的模块化。
一、为什么要使用模块化
模块化主要是用于管理代码,解决解耦、变量依赖与复用问题 。在我们日常的代码工作中的重要性不容置疑。
使用模块化可以提高代码的复用性 可维护性,使代码功能独立 便于后期管理和维护,也可以防止全局变量的污染(浏览器中没有模块作用域的概念),从而实现按需加载。
二、了解CommonJS
要学习Node.js的模块化,就不得不提到CommonJS这个东西。首先我们要知道JavaScript 是一个强大面向对象语言,它有很多快速高效的解释器。然而, JavaScript 标准定义的 API 是为了构建基于浏览器的应用程序。并没有制定一个用于更广泛的应用程序 的标准库。
CommonJS 规范的提出,主要是为了弥补当前 JavaScript 没有标准的缺陷。它的终极目标就是:提供一个类似 Python,Ruby 和 Java 语言的标准库,而不只是停留在小脚本程序 的阶段。用 CommonJS API 编写出的应用,不仅可以利用 JavaScript 开发客户端应用,而且 还可以编写以下应用:
•服务器端 JavaScript 应用程序,既NodeJS
•命令行工具。
•桌面图形界面应用程序。
总的来说,CommonJS 就是模块化的标准(规范),nodejs 就是 CommonJS(模块化)的实现。
三、NodeJS模块种类
Node模块有三种,分别是内置模块(核心模块),自定义模块和第三方模块。
核心模块 :
使用var http = require("http") 不需要安装 直接通过require方法导入核心模块,如:http querystring fs url events等
第三方模块 :
使用第三方模块之前 先进行 安装 , yarn add 模块 或 npm i 模块 --save
安装好第三方模块后,通过 require(“axios”)方法导入该模块
自定义模块(文件模块):
使用exports 或 module.exports 进行模块的暴露
exports 或 module.exports 指向同一个对象
自定义模块 : 自定义xxx.js文件
自定义模块的使用 :require() 导入时需要提供路径
注意:模块的加载----核心模块和第三方模块一致,而自定义模块需要提供路径 .js的后缀名可以省略
下面为大家介绍几个Node的常用的核心模块
fs模块主要用于操作文件或目录
目录操作 :
mkdir 创建目录 mkdirSync
rmdir 删除目录
readdir 读取目录信息
stat 判断是文件还是目录
existsSync 监测目录是否存在
rename 重命名目录
文件操作 :
writeFile/Sync 写入文件信息
appendFile 追加文件信息
readFile/Sync 读取文件信息
unlink 删除文件
rename 重命名文件或目录
得到文件与目录的信息:stat (判断是文件还是目录的方法)
statSync()方法用于同步返回有关给定文件路径的信息
创建一个目录:mkdir
创建文件并写入内容:writeFile ,appendFile , writeFileSync
参数解读:
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径。
参数2:必选参数,表示要写入的内容。
参数3:可选参数,表示以什么格式写入文件内容,默认值是 utf8。
参数4:必选参数,文件写入完成后的回调函数
读取文件的内容:readFile readFileSync
参数解读:
参数1:必选参数,字符串,表示文件的路径。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果
列出目录的内容:readdir 返回值是一个数组
重命名目录或文件:rename
删除目录与文件:rmdir(要求要删除的目录是空目录),unlink
existsSync()以同步的方法检测目录是否存在。
如果目录存在 返回 true ,如果目录不存在 返回false
path模块主要用于路径的拼接
path 模块是 Node.js 官方提供的、用来处理路径的模块。它提供了一系列的方法和属性,用来满足用户对路径的处理需求。
例如:
path.join() 方法,用来将多个路径片段拼接成一个完整的路径字符串
使用 path.join() 方法,可以把多个路径片段拼接为完整的路径字符串,语法格式如下: path.join([...paths])
../表示会删除前面的一个路径
const str = path.join("/a",'/b/c','../','./d','../','e')
console.log(str);
const str = path.join(__dirname,'./css/3.txt')
console.log(str);
path.basename() 方法,用来从路径字符串中,将文件名解析出来
使用 path.basename() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名
path.extname()使用 path.extname() 方法,可以获取路径中的扩展名部分
除此之外,还有很多实用的模块,像url模块,http模块等等。我就不一一叙述了,感兴趣的兄弟可以在评论区唠唠,也希望有大佬可以做一个指点,兄弟们共同学习,感谢观看!!!