当前位置: 首页 > news >正文

4-Nodejs模块化

4-Nodejs模块化

模块化概念

模块化可以理解成将不同功能的代码分成不同的模块,当需要使用某个功能代码是就引入这个模块,例如可以将时间格式化代码抽离出来作为一个模块,当其他地方需要使用时引入这个模块即可。
模块化有助于提高代码的可维护性、可读性和可重用性。

Node.js中模块的分类

Nodejs 根据模块来源的不同,将模块分为了3大类,分别是:

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

内置模块
内置模块(Built-inModules)是指Node.js核心提供的一系列模块,这些模块可以直接使用而不需要额外安装,例如:

// 导入 fs 模块
const fs = require('fs');

自定义模块
自定义模块是一种封装和组织代码的方式,使得应用可以更加模块化,易于维护和复用。自定义模块可以是一系列函数、变量、对象或者其他模块的集合,它们可以被其他文件导入和使用。下面是如何创建和使用自定义模块的基本步骤:

① 创建自定义模块
创建一个JavaScript文件,比如 4-myModule1.js,然后在这个文件中定义导出内容:

// 定义一些变量
const myVar = 'Hello, World!';// 定义一些函数
function myFunction() {console.log(myVar);
}// 使用module.exports导出内容
module.exports.myVar = myVar;
module.exports.myFunction = myFunction;

② 使用自定义模块
在另一个文件 4-module-test.js 中,可以使用require函数来导入并使用刚刚创建的自定义模块。

// 导入自定义模块
const myModule = require('./4-myModule1');// 使用导入的变量和函数
console.log(myModule.myVar); // 输出: Hello, World!
myModule.myFunction();       // 输出: Hello, World!

使用ES6语法自定义模块
可以使用ES6的import和export语法来创建和使用模块。这种方式更加现代和简洁。

① 创建自定义模块
创建一个JavaScript文件,比如 5-myModule2.mjs,然后在这个文件中定义导出内容:

// 使用export导出内容
export const myVar = 'Hello, World!';
export function myFunction() {console.log(myVar);
}

② 使用自定义模块
在另一个文件 5-module-test.js 中导入模块

// 使用import导入内容
import { myVar, myFunction } from './5-myModule2.mjs';console.log(myVar);       // 输出: Hello, World!
myFunction();            // 输出: Hello, World!

第三方模块
需要下载第三方模块到本地后引入

const moment = require('moment')
http://www.lryc.cn/news/589363.html

相关文章:

  • 国内第一梯队终端安全产品解析:技术与场景实践
  • Video Python(Pyav)解码一
  • 如何解决 Spring Boot 使用 Maven 打包后运行失败的问题(附详细排查步骤)
  • 【GEOS-Chem模拟教程第一期上】气溶胶专用/碳气体/全化学模拟
  • [锂电池]锂电池入门指南
  • Altium Designer 25 安装与配置完整教程
  • C 语言(二)
  • 期权做空怎么操作?
  • 软文营销怎么打造口碑扩散,让品牌声量快速增长
  • 极限状态下函数开根号的计算理解(含示意图)
  • 李宏毅《生成式人工智能导论》 | 第11讲-第14讲:大型语言模型的可解释性、能力评估、安全性
  • AUTOSAR进阶图解==>AUTOSAR_SWS_FlexRayARTransportLayer
  • 【Unity】MiniGame编辑器小游戏(十四)基础支持模块(游戏窗口、游戏对象、物理系统、动画系统、射线检测)
  • HarmonyOS从入门到精通:自定义组件开发指南(八):组件插槽 (Slot) 的魅力
  • 【matlab】三维路面谱生成代码
  • Halcon双相机单标定板标定实现拼图
  • 【QT】实现应用程序启动画面
  • 封装---统一处理接口与打印错误信息
  • 2025/7/15——java学习总结
  • 网页源码保护助手 海洋网页在线加密:HTML 源码防复制篡改,密文安全如铜墙铁壁
  • 全局 WAF 规则:构筑 Web 安全的坚固防线
  • 【12】MFC入门到精通——MFC 消息对话框 MessageBox()和AfxMessageBox() 解析 示例 及 应用实例
  • Kafka与Flink打造流式数据采集方案:以二手房信息为例
  • C++ Filesystem Library 全解
  • 20250715正面看MIPI接口的LCD屏正常,侧面看发红是什么原因?
  • 12.6 Google黑科技GShard:6000亿参数MoE模型如何突破显存限制?
  • C++-linux系统编程 8.进程(三)孤儿进程、僵尸进程与进程回收
  • 算法学习笔记:22.贪心算法之霍夫曼编码 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 多相机depth-rgb图组完整性分拣器_MATLAB实现
  • 魔搭官方教程【快速开始】-swift 微调报错:`if v not in ALL_PARALLEL_STYLES`