node.js模块化


我们知道,node.js是基于commonjs规范进行模块化管理的,模块化是面对复杂的业务场景不可或缺的工具,或许你经常使用它,但却从没有系统的了解过,所以今天我们来聊一聊node.js模块化你所需要知道的一些事儿,一探node.js模块化的面貌。

什么是模块化

编程领域中的模块化,就是遵守固定的规则,把一个大文件拆成若干个独立并且相互依赖的小模块。
使用模块化的好处有:

  • 提高代码的复用性
  • 提高代码的可维护性
  • 可以实现按需加载

模块的分类

Node.js 中根据模块来源的不同,将模块分为了三大类,分别是:

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

自定义node.js模块

我们已经知道了如何引入一个 Nodejs 模块,但是我们应该如何定义一个 Nodejs 模块呢?在 Nodejs 上下文环境中提供了一个 module 对象和一个 exports 对象,module 代表当前模块,exports 是当前模块的一个属性,代表要导出的一些 API。在 Nodejs 中,一个文件就是一个模块,把方法或者变量作为属性挂载在 exports 对象上即可将其作为模块的一部分进行导出。

// add.js
exports.add = function(a, b) {
    return a + b
}

在另一个文件中,我们就可以通过 require 引入之前定义的这个模块:

const { add } = require('./add.js')

add(1, 2) // 结果为 3

模块化规范

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

  1. 每个模块内部,module 变量代表当前模块
  2. module 变量是一个对象,它的 exports 属性(即 module.exports)是对外的接口
  3. 加载某个模块,其实是加载该模块的 module.exports 属性, require() 方法用于加载模块
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值