Node.js模块化(两个标准)

一、什么是模块化?

(1)定义:CommonJS 模块是为 Node.js 打包 javascript 代码的原始方式。 Nodejs 还支持浏览器和其他 JavaScript 运行时使用的 ECMAScript 模块标准。在 Node.js 中,每个文件都被视为一个单独的模块。

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

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

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

二、CommonJS标准

  1. 使用:

(1)导出:module.exports={ }

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

2.模块名或路径:

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

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

utils.js代码

复制代码
const { get } = require("http")

const baseUrl = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

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

index.js代码

复制代码
const obj = require('./utils.js')
console.log(obj)
const result = obj.arraySum([5, 1, 2, 3])
console.log(result)

**三、**ECMAScript标准

1. 默认导入与导出

(1)导出:export default { }

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

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

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

utils.js代码

复制代码
const baseUrl = 'http://hmajax.itheima.net'
const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)


//默认导出
export default {
  url: baseUrl,
  arraySum: getArraySum
}

index.js代码

复制代码
//默认导入
import obj from './utilss.js'
console.log(obj)
const result = obj.arraySum([1, 2, 3])
console.log(result)

2.命名导入与导出

(1)导出:export 修饰定义语句

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

utils.js代码

复制代码
export const baseUrl = 'http://hmajax.itheima.net'
export const getArraySum = arr => arr.reduce((sum, item) => sum += item, 0)

index.js代码

复制代码
import { baseUrl, getArraySum } from './utils.js'
console.log(baseUrl)
console.log(getArraySum([1, 2, 3]))

如何选择:

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

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

总结:

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

>CommonJS 标准语法(默认)

>ECMAScript 标准语法

2.ECMAScript 标准,命名导出和导入的语法?

>导出:export 修饰定义的语句

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

3.ECMAScript 标准,默认导出和导入的语法?

>导出:export default { }

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

相关推荐
毕设源码-朱学姐7 小时前
【开题答辩全过程】以 基于Node.js的书籍分享平台设计与实现为例,包含答辩的问题和答案
node.js
前端 贾公子9 小时前
Node.js 如何处理 ES6 模块
前端·node.js·es6
周杰伦的稻香9 小时前
Hexo搭建教程
java·node.js
毕设源码-钟学长9 小时前
【开题答辩全过程】以 基于node.js vue的点餐系统的设计与实现为例,包含答辩的问题和答案
前端·vue.js·node.js
朝朝暮暮an21 小时前
Day 2|Node.js 运行机制、模块系统与异步初探
node.js
aidou13141 天前
Visual Studio Code(VS Code)安装步骤
vscode·npm·node.js·环境变量
止观止1 天前
告别 require!TypeScript 5.9 与 Node.js 20+ 的 ESM 互操作指南
javascript·typescript·node.js
一只专注api接口开发的技术猿1 天前
淘宝商品详情API的流量控制与熔断机制:保障系统稳定性的后端设计
大数据·数据结构·数据库·架构·node.js
天远数科1 天前
天远车辆过户查询API集成指南:Node.js 全栈视角下的二手车数据挖掘
大数据·数据挖掘·node.js·vim
全栈小51 天前
【前端】win11操作系统安装完最新版本的NodeJs运行npm install报错,提示在此系统上禁止运行脚本
前端·npm·node.js