当前位置: 首页 > 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://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://.
http://www.dtcms.com/a/281473.html

相关文章:

  • 倒计时熔断机制的出价逻辑
  • 入门华为人工智能,HCIA/HCIP/HCIE该怎么选?
  • 【kubernetes】--ConfigMap
  • slam中的eskf观测矩阵推导
  • 2025年最新香港站群服务器租用价格参考
  • 杭州轻创创业服务有限公司——以卓越品质赢得市场信赖
  • 【字节跳动】数据挖掘面试题0019:带货直播间推荐:现在有一个带货的直播间,怎么把它精准地推送给有需要的用户
  • IPD-流程设计-DT角色说明书参考模板
  • DeepSDF论文复现1---数据集生成2---原理解析
  • JVM——JVM由哪部分组成?
  • python+selenium UI自动化初探
  • 算法学习笔记:22.贪心算法之霍夫曼编码 ——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • PHP连接MySQL数据库的多种方法及专业级错误处理指南
  • 乌邦图ubuntu20.04鱼香一键安装ros2(foxy)
  • 第一篇 - 常规过滤及分组汇总---轻量级文件存储提速查询
  • RabbitMQ消息队列
  • R语言安装包
  • 降本增效!自动化UI测试平台TestComplete并行测试亮点
  • 如何在 Shopify 上创建运输政策
  • 一、CV_图像分类简介
  • 基于图形渲染的鼠标增强工具技术浅析
  • 【相干、相参】 雷电名词溯源
  • 永磁同步电机控制算法--弱磁控制(定交轴CCR-FQV)
  • C# 网口demo
  • MySQL数学函数
  • 关于Linux下Cursor的使用
  • SpringBoot项目启动报:java: 找不到符号 符号: 变量 log 的解决办法
  • 操作HTML页面(小白五分钟从入门到精通)
  • 无刷电机控制 - 基于STM32F405+CubeMX+HAL库+SimpleFOC02 ,完成三相半桥驱动程序BLDCDriver6PWM
  • 清华提出MoPPS,将贝叶斯流式推断引入提示选择领域,加速Reasoning Model训练