【Web前端学习之路】 Node.js 学习笔记(黑马课程)

本文详细介绍了Node.js的模块化概念,包括基本概念、模块化规范、模块分类以及模块作用域,强调了模块化对代码复用和维护的重要性。同时,深入讲解了npm包管理,包括npm的基本操作、包管理配置文件、如何提高包下载速度及包的分类,帮助读者理解并掌握Node.js开发中的模块化和包管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、模块化

1.1  基本概念

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

把代码进行模块化拆分的好处:

①  提高了代码的复用性

②  提高了代码的可维护性

③  可以实现按需加载

1.2   模块化规范

模块化规范就是对代码进行模块化拆分与组合时需要遵守的规则,这样可以降低沟通成本,极大方便了各个模块之间的相互调用。

1.3   模块的分类

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

1.4   模块作用域

在自定义模块中定义的变量、方法等成员,只能在当前模块中被访问

那么如何将自己模块下的成员共享出去?

module 对象

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

module.exports 对象

module 对象中包含 exports 对象,其实外界用 require() 方法导入自定义模块时,导入的就是 module.exports 对象,用module.exports 对象定义的成员,可以被共享出去。

为了简化向外共享成员的代码,Node 提供了 exports 对象,默认情况下,exports 和 module.eports 指向同一个对象,最终的共享结果,还是以 module.exports 指向的对象为准。

exports 和 module.exports 对象的使用误区

 总而言之,共享的最终结果是 moule.exports 指向的对象。为了防止混乱,建议不要在同一模块下使用二者。

2、npm 与 包

Node.js 中第三方模块又叫做,二者指的是同一个概念,只不过叫法不同。

包是基于内置模块封装出来的,提供了更高级、更方便的API,极大的提高了开发效率。

http://www.npmjs.com/ 网站可以搜索包

http://registry.npmjs.org/ 网站可以下载包

通过包管理工具(Node Package Manager,简称 npm 包管理工具),可以从服务器把需要的包下载到本地使用。

2.1   npm 初体验

在项目中安装包的命令时需要运行如下命令:

npm install 包的完整名称

简化: npm i 包的完整名称

可以通过 @ 符号 下载安装指定版本的包 : npm i 包的完整名称@版本号

卸载指定包:npm uninstall 包的完整名称

2.2   包管理配置文件

下载包之后,会自动创建 package.json 文件,记录了下载的包的信息。

其中有一个 dependencies 节点,专门用来记录使用 npm install 命令安装了哪些包。

2.3   解决下包速度慢的问题------淘宝 NPM 镜像服务器

npm 默认在国外服务器上下载, 淘宝在国内搭建了一个 镜像服务器,专门把国外官方服务器上的包同步到国内的服务器,极大提高了包的下载速度。

 2.4   包的分类

项目包:被安装到项目的 node_modules 目录中的包,都是项目包。

  • 开发依赖包(被记录到 devDependencies 节点中的包,只在开发期间会用到)
  • 核心依赖包(被记录到 dependencies 节点中的包,在开发期间和项目上线之后都会用到)

全局包:在执行 npm install 命令时,如果提供了 -g 参数,则会把包安装为 全局包

规范的包的结构:

①  包必须以 单独的目录 而存在

②  包的顶级目录下要必须包含 package.json 这个包管理配置文件

③  package.json 中必须包含 name,version,main 这三个属性,分别代表包的名字、版本号、包的入口。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值