Node.js的模块

1.模块的概念

模块:指解决一个复杂问题的时候,自顶向下逐层把系统划分成若干模块的过程。对于整个系统来讲,模块是可以组合、分解和更换的单元。

在编辑领域中的模块,就是遵守固定的规则把一个大文件拆成独立并且相互依赖的多个小模块

代码进行模块拆分的好处有:提高代码的复用性提高代码的可维护性可以实现按需加载

2.Node.js中的模块

Node.js中模块的分类

Node.js中根据模块来源的不同,把模块分为了3大类

  • 内置模块(内置模块是由Node.js官方提供的,如fs、path、http等)
  • 自定义模块(每个用户创建的 .js文件,都是自定义模块)
  • 第三方模块(由第三方开发出来的模块,使用前需先下载

加载模块

使用 require() 方法,可以加载需要的内置模块、自定义模块、第三方模块进行使用

注:使用 require() 方法加载其他模块时,会执行被加载模块中的代码

const fs = require("fs");               // 内置模块
const custom = require("./custom.js");  // 自定义模块,如需要指明路径可以省略.js的后缀名
const moment = require("moment")        // 第三方模块

3.Node.js中的模块作用域

模块作用域:模块作用域和函数作用域类似,在自定义模块中定义的变量、方法只能在当前模块内被访问,这种模块级别的访问限制。模块作用域的好处可以防止全局变量污染的问题。

// 模块作用域
const username = "张三";
function funcs(){
    console.log("大家好,我叫" + username);
};

4.模块的加载机制

模块在第一次加载后会被缓存,多次去调用 require() 模块的代码只会被执行一次。无论是内置模块、自定义模块、还是第三方模块,它们都会优先从缓存中加载,提高模块的加载效率。

内置模块的加载机制:内置模块的加载优先级最高

自定义模块的加载机制:当使用 require() 加载自定义模块时,必须以 ./ 或 ../ 开头的路径标识符。如果没有使用 ./ 或 ../ 的路径标识符,则 node.js 会把它当作内置模块或第三方模块去加载。

第三方模块的加载机制:当传递给 require() 的模块标识符不是一个内置模块,也没有以 ./ 或 ../ 开头,则 node.js 会从当前的模块的父目录开始,尝试从 /node_modules 文件夹中加载第三方模块,如果没有找到对应的第三方模块,会移动到上一层父目录中进行加载,直到文件系统的根目录。

希望这些资料信息对你有所帮助

如有错误,请斧正!

你可能感兴趣的:(node.js,模块,前端,node.js,前端)