细讲Node.js模块化,以及 CommonJS 标准语法导出和导入,详细简单易懂!

带大家了解Node.js模块化概念和好处,以及 CommonJS 标准语法导出和导入:

一、Node.js模块化

1、在 Node.js 中每个文件都被当做是一个独立的模块,模块内定义的变量和函数都是独立作用域的,因为 Node.js 在执行模块代码时,将使用如下所示的函数封装器对其进行封装
2、而且项目是由多个模块组成的,每个模块之间都是独立的,而且提高模块代码复用性,按需加载,独立作用域
3、但是因为模块内的属性和函数都是私有的,如果对外使用,需要使用标准语法导出和导入才可以,而这个标准叫 CommonJS 标准,接下来我们在一个需求中,体验下模块化导出和导入语法的使用

二、CommonJS 标准语法

1、需求:定义 utils.js 模块,封装基地址和求数组总和的函数,导入到 index.js 使用查看效果
2、导出语法:
复制代码
module.exports = {
  对外属性名: 模块内私有变量
}
3、导入语法:
复制代码
const 变量名 = require('模块名或路径')
// Node.js 环境内置模块直接写模块名(例如:fs,path,http)
// 自定义模块:写模块文件路径(例如:./utils.js)

变量名的值接收的就是目标模块导出的对象

4、代码实现:
  • utils.js:导出

    /**

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

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

  • index.js:导入使用

    /**

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

结束!!!

下一篇给大家分享【ECMAScript标准语法】,如果对小伙伴们有用,欢迎大家关注和评论!

相关推荐
萧瑟余晖5 分钟前
Java深入解析篇三十三之密封类与接口(Sealed Classes)详解
java·开发语言
平头哥~4 小时前
Day 07 _ 那条 1px 的线,为什么在手机上忽粗忽细
前端·css·样式·学习资料
论迹复利4 小时前
FreeRTOS 在 RISC-V 上是如何“点火“的 —— 从 main() 到第一个任务的完整链路
java·开发语言·risc-v
小江的记录本4 小时前
【CSS】CSS 动画:transition、animation、transform、CSS3 新特性(附《思维导图》)
前端·css·安全·spring·前端框架·css3·动画
circuitsosk4 小时前
任务规划器的三种范式对比:ReAct、Plan-and-Execute 与 Tree-of-Thought 在真实业务中的取舍
前端·javascript·python·react.js·llm·ai agent
张宇Joaquin4 小时前
鲲鹏统一并行加速库KUPL--众核并行能力介绍
java·开发语言·网络
736c4 小时前
C语言-数组 07
c语言·开发语言
宸津-代码粉碎机5 小时前
AI攻防战升级!基于Spring AI构建Java应用自动免疫安全体系
java·大数据·开发语言·人工智能·python·安全·spring
hzxpaipai5 小时前
企业官网技术架构拆解:前端、后台、数据库、服务器如何协同
前端·数据库·架构
小磊哥er5 小时前
深入解构Claude Code - 第 12 篇 · 整体串起来
javascript·ai编程