0
点赞
收藏
分享

微信扫一扫

【Node.js】-模块化及Commonjs/ECMAScript标准

witmy 2023-12-14 阅读 33

一、模块化

定义:在Node.js中,每个文件都被视为一个单独的模块

概念:项目是由很多个模块文件组成的

好处:提高代码复用性,按需加载,独立作用域

使用:需要标准语法导入和导出进行使用

【Node.js】-模块化及Commonjs/ECMAScript标准_模块化

二、Commonjs标准

1.使用方法及介绍

需求:定义utils.js模块,封装基地址和求数组总和的函数【Node.js】-模块化及Commonjs/ECMAScript标准_模块化_02

使用:

1.导出:module.exports={}

2.导入:require('模块名或路径')

导入时如何判断写模块名还是路径:

内置模块:直接写名字(例如:fs,path,http)

自定义模块:写模块文件路径(例如:./utils.js)

2.代码示例

/**
 * 目标:基于 CommonJS 标准语法,封装属性和方法并导出
 */
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

// 导出
module.exports = {
  url: baseURL,
  arraySum: getArraySum
}

/**
 * 目标:基于 CommonJS 标准语法,导入工具属性和方法使用
 */
// 导入
const obj = require('./utils.js')
console.log(obj)
const result = obj.arraySum([5, 1, 2, 3])
console.log(result)

【Node.js】-模块化及Commonjs/ECMAScript标准_封装_03

三、ECMAScript标准-默认导出和导入

1.介绍及使用方法

需求:封装并导出基地址个求数组元素和的函数

默认标准使用:

1.导出:export default{}

2.导入:import 变量名from'模块名或路径'

注意:Node.js默认支持CommonJS标准语法

如需使用ECMAScript标准语法,在运行模块所在的文件夹新建package.json文件,并设置{‘’type‘’:‘’module‘’}

【Node.js】-模块化及Commonjs/ECMAScript标准_模块化_04

2.代码示例

/**
 * 目标:基于 CommonJS 标准语法,封装属性和方法并导出
 */
const baseURL = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

// 导出
module.exports = {
  url: baseURL,
  arraySum: getArraySum
}

/**
 * 目标:基于 ECMAScript 标准语法,"默认"导入,工具属性和方法使用
 */
// 默认导入
import obj from './utils.js'
console.log(obj)
const result = obj.arraySum([10, 20, 30])
console.log(result)

【Node.js】-模块化及Commonjs/ECMAScript标准_模块化_05

四、ECMAScript标准-命名导出和导入

1.命名标准使用

1.导出:export修饰定义语句

2.导入:import{同名变量}from'模块名或路径'

如何选择命名和默认:

按需加载,使用命名导出和导入

全部加载,使用默认导出和导入

2.代码示例

/**
 * 目标:基于 ECMAScript 标准语法,封装属性和方法并"命名"导出
 */
export const baseURL = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

/**
 * 目标:基于 ECMAScript 标准语法,"命名"导入,工具属性和方法使用
 */
// 命名导入
import {baseURL, getArraySum} from './utils.js'
//若果只需要使用baseURL,可只导出它一个
//import { baseURL } from './utils.js'
console.log(baseURL)
console.log(getArraySum)
const result = getArraySum([10, 21, 33])
console.log(result)

【Node.js】-模块化及Commonjs/ECMAScript标准_模块化_06

【Node.js】-模块化及Commonjs/ECMAScript标准_模块化_07

五、总结

1.Node.js中什么是模块化

每个文件都是独立的模块

2.模块之间如何联系

使用特定语法,导出和导入使用

3.CommonJS标准规定如何导出和导入模块

导出:module.exports={}

导入:require('模块名或路径')

4.模块名/路径如何选择

内置模块:直接写名字(例如:fs,path,http)

自定义模块:写模块文件路径(例如:./utils.js)

5.ECMAScript标准规定如何默认导出和导入模块

导出:export default{}

导入:import 变量名from'模块名或路径'

6.如何让Node.js切换模块标准为ECMAScript

在运行模块所在的文件夹新建package.json文件,并设置{‘’type‘’:‘’module‘’}

7.Node.js支持哪2种模块化标准

CommonJS标准(默认)

ECMAScript标准

8.ECMAScript标准规定如何命名导出和导入模块

导出:export修饰定义语句

导入:import{同名变量}from'模块名或路径'


举报

相关推荐

0 条评论