Node后端基础2-Node.js的模块化

书接上回,关于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的常用的核心模块

1、fs模块

        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:必选参数,文件读取完成后,通过回调函数拿到读取的结果

Node后端基础2-Node.js的模块化_第1张图片

列出目录的内容:readdir  返回值是一个数组

重命名目录或文件:rename

删除目录与文件:rmdir(要求要删除的目录是空目录),unlink

existsSync()以同步的方法检测目录是否存在。

如果目录存在 返回 true ,如果目录不存在 返回false
 

2、path模块

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() 方法,可以获取路径中的最后一部分,经常通过这个方法获取路径中的文件名

Node后端基础2-Node.js的模块化_第2张图片

path.extname()使用 path.extname() 方法,可以获取路径中的扩展名部分

Node后端基础2-Node.js的模块化_第3张图片

除此之外,还有很多实用的模块,像url模块,http模块等等。我就不一一叙述了,感兴趣的兄弟可以在评论区唠唠,也希望有大佬可以做一个指点,兄弟们共同学习,感谢观看!!!

你可能感兴趣的:(node.js)