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

Node.js_基础知识(CommonJS模块化)

CommonJS模块化规范

  1. 加载时机:
    • 服务器端: 模块的加载是运行时同步加载的,node.js实现了模块化规范
    • 浏览器端: 模块需要提前编译打包处理,需使用Browserify编译打包,推荐使用ESM
  2. 暴露模块:module.exports、exports
  3. 导入模块:require

模块导出

  1. module.exports = 任意数据 (字符串、整数、布尔值、对象)
  2. exports.模块名 = 任意数据 (字符串、整数、布尔值、对象),相当于exports={模块名: 任意数据}
  3. module.exports 与 exports 的关系:
    • 在模块内部存在一种隐式关系:exports = module.exports = {}
    • 模块最终取的是module.exports的值
    • exports只能是引用类型数据,不能使用exports = 基本类型的数据。如果 exports = ‘abc’,不会改变模块返回的结果,因为module.exports为{},所以模块返回的是{}

模块导入

  1. 使用require方法导入文件:

    • 自定义的模块:路径建议写相对路径 const m = require('./m.js');,并且不能省略

相关文章:

  • Hololens 2应用开发系列(1)——使用MRTK在Unity中设置混合现实场景并进行程序模拟
  • 23端口登录的Telnet命令+传输协议FTP命令
  • Django 表单
  • 【Git】深入理解 Git 分支合并操作:git merge dev 命令详解
  • 2024年,智慧文旅领航新时代,重塑旅行体验的未来篇章!
  • oppo手机备忘录记录怎么转移到华为手机?
  • wordpress 开源主题
  • Linux 开发工具vim、gcc/g++、makefile
  • TypeScript08:在TS中使用模块化
  • AGI概念与实现
  • 【接口测试】常见HTTP面试题
  • esp32 C3和S3 开发板电流对比
  • Docker基础教程 - 1 Docker简介
  • C++_运算符_逻辑运算符
  • Java面试——Redis
  • [Vue CLI 3] 配置解析之 css.extract
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 2017-08-04 前端日报
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • gops —— Go 程序诊断分析工具
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • java小心机(3)| 浅析finalize()
  • KMP算法及优化
  • Laravel 中的一个后期静态绑定
  • Vue 重置组件到初始状态
  • 对超线程几个不同角度的解释
  • 工作中总结前端开发流程--vue项目
  • 计算机在识别图像时“看到”了什么?
  • 系统认识JavaScript正则表达式
  • 小程序 setData 学问多
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 用mpvue开发微信小程序
  • zabbix3.2监控linux磁盘IO
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #单片机(TB6600驱动42步进电机)
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • (16)Reactor的测试——响应式Spring的道法术器
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (三)终结任务
  • (四)Android布局类型(线性布局LinearLayout)
  • (万字长文)Spring的核心知识尽揽其中
  • .cfg\.dat\.mak(持续补充)
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 使用 XPath 来读写 XML 文件
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)
  • .sys文件乱码_python vscode输出乱码
  • .考试倒计时43天!来提分啦!
  • /run/containerd/containerd.sock connect: connection refused