Node.js 中模块化

一、Node.js 中模块的分类


在这里插入图片描述

二、加载模块


  • 使用强大的require()方法,可以加载需要的内置模块、用户自定义模块、第三方模块进行使用
    在这里插入图片描述
  • 注意:使用 require() 方法加载其它模块时,会执行被加载模块中的代码。

三、Node.js 中的模块作用域


1. 什么是模块作用域

  • 函数作用域类似,在自定义模块中定义的变量、方法等成员,只能在当前模块内被访问,这种模块级别的访问限制,叫做模块作用域
    在这里插入图片描述

2. 模块作用域的好处

  • 防止了全局变量污染的问题
    在这里插入图片描述

四、向外共享模块作用域中的成员


1. module 对象

  • 在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息,打印如下:
console.log(module);

在这里插入图片描述

2. module.exports 对象

  • 在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。
  • 外界用 require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象。

3. 共享成员时的注意点

  • 使用 require()方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准
    在这里插入图片描述

4. exports 对象

  • 由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node 提供了 exports对象。默认情况下,exports 和 module.exports 指向同一个对象。最终共享的结果,还是以 module.exports 指向的对象为准。
    在这里插入图片描述

5. exports 和 module.exports 的使用误区

  • 时刻谨记,require() 模块时,得到的永远是 module.exports 指向的对象:
    在这里插入图片描述
  • 注意:为了防止混乱,建议大家不要在同一个模块中同时使用 exports 和 module.exports

五、Node.js 中的模块化规范


在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_58190023/article/details/129754367