Nodejs模块化

news/2024/11/21 1:32:50/

1.模块化

  • 1.1.模块化的基本概念

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

  • 1.2 编程中的模块化

编程领域的模块化就是把一个大文件拆成独立并相互依赖的多个小模块。
模块化的好处:

  • 提高了代码的复用性

  • 提高了代码的可维护性

  • 可以实现按需加载

2.node.js中的模块化

2.1 nodejs中的模块分类

  • 内置模块:由node.js官方提供的,例如fs,path,http
  • 自定义模块:用户创建的每个.js文件,都是自定义模块
  • 第三方模块:由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的自定义模块,使用前需要先下载

2.2 模块作用域

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

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

2.3.1 module对象

在每个.js自定义模块中都有一个module对象,它里面存储了和当前模块有关的信息

2.3.2 module.exports对象

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

2.3.3 exports对象

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

2.3.4 node.js中的模块化规范

node.js遵循了CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何互相依赖。
CommonJS规定:

  • 每个模块内部,module变量代表当前模块 。

  • module变量是一个对象,它的exports属性是对外的接口。

  • 加载某个模块,其实是加载该模块的module.exports属性。require()方法用于加载模块。


http://www.ppmy.cn/news/29426.html

相关文章

【2023】某python语言程序设计跟学第二周内容

本文说明: 案例内容为北理工python语言程序设计课程,如有不妥请联系! 目录蟒蛇绘制案例:执行结果:代码分析:举一反三:绘制一个五角星图案执行结果:turtle库根据案例简单说明&#xf…

大话数据结构-普里姆算法(Prim)和克鲁斯卡尔算法(Kruskal)

5 最小生成树 构造连通网的最小代价生成树称为最小生成树,即Minimum Cost Spanning Tree,最小生成树通常是基于无向网/有向网构造的。 找连通网的最小生成树,经典的有两种算法,普里姆算法和克鲁斯卡尔算法。 5.1 普里姆&#xff…

计算机网络安全基础知识2:http超文本传输协议,请求request消息的get和post,响应response消息的格式,响应状态码

计算机网络安全基础知识: 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学生都得去找开发,测开 测开的话,你就得学数据库,sql,oracle,尤…

vue2 @hook 的解析与妙用

目录前言几种用法用法一 将放在多个生命周期的逻辑,统一到一个生命周期中用法二 监听子组件生命周期运行的情况运用场景场景一 许多时候,我们不得不在不同的生命周期中执行某些逻辑,并且这些逻辑会用到一些通用的变量,这些通用变量…

HTML认知

HTML认知 文章目录HTML认知语法规范注释标签组成和关系标签的关系标签学习排版系列标签**标题标签****段落标签**换行标签水平线标签文本格式化标签媒体标签图片标签src 目标图片的路径alt 替换文本title 图片的标题width 宽度 / height 高度路径绝对路径相对路径(常…

【Hello Linux】程序地址空间

作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:简单介绍下进程地址空间 程序地址空间程序地址空间语言中的程序地址空间矛盾系统中的程序地址空间为什么要有进程地址空间思维导图总结…

20.hadoop系列之Yarn资源调度器

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序 1.Yarn基础架构 Yarn主要由ResourceManager、NodeManager、ApplicationMaster和Contai…

Python进阶-----面向对象3.0(面对对象三大特征之---封装)

目录 前言: 什么是封装 Python私有化封装 习题 前言: 上一期是讲解Python中类的私有属性和方法,其实很好理解,我给一个类中的部分属性进行加密拒绝访问(上一期链接Python进阶-----面向对象2.0&#…