Node.js 模块化

Node.js 模块化

一、概念

1、定义

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

2、编程中的模块化

遵守固定的规则(模块化规范),把一个大文件拆分成独立并互相依赖的多个小模块。

3、模块化的好处

  1. 提高代码的复用性
  2. 提高代码的可维护性
  3. 可以实现代码按需加载

二、Node.js的模块

1、分类

  1. 内置模块(如fs模块,由Node.js官方提供的)
  2. 自定义模块(用户创建的每个js文件,都是自定义模块)
  3. 第三方模块(由第三方开发的模块,使用前需要先下载)

2、加载模块

使用require方法加载

const fs = require('fs')

const custom = require('./custom.js')
//使用require方法加载,也可以省略文件后缀
const custom = require('./custom')
//正常运行

**注意:**使用require方法加载模块时,会执行模块中的代码。

3、模块作用域

定义:

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

好处:

避免了全局变量污染的问题。

4、module对象(作用:向外共享作用域成员)

介绍:

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

输出module:

在这里插入图片描述

module.exports对象

在自定义模块中,可以使用module.exports对象,使模块内的成员共享出去,供外界使用。

外界使用require引入模块时,得到的就是module.exports对象

例子:

//node1.js

const m = require('./node2')

console.log(m);

//node2.js 

module.exports.username = 'xxx'

module.exports.sayHello = function(){
    console.log(hello);
}

//结论
//node1.js中引入的node2.js模块,得到的是node2.js中的exports对象 

在这里插入图片描述

exports对象:module.exports的简写

默认情况下,exports与module.exports指向同一个对象,最终共享的结果,以module.exports指向的对象为准。

例子1:

module.exports.username = 'xxx'

module.exports.sayHello = function(){
    console.log(hello);
}

module.exports = {
    name : "zzz",
    sayHI(){
console.log(hi);
    }
}

//当module.exports指向其他对象时,以代码执行完毕module.exports的指向为准。

在这里插入图片描述

例子2:

module.exports = {
    name : "zzz",
    sayHI(){
        console.log(hi);
    }
}
exports.username = 'xxx'

exports.sayHello = function(){
    console.log(hello);
}
//当exports与module.exports指向不同对象时,以module.exports为准。

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

FlowerHeap

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

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

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

打赏作者

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

抵扣说明:

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

余额充值