module.exports与exports,export与export default之间的关系和区别

2023-05-16

module.exports与exports,export与export default之间的区别及使用

这里我就以最简单的方法,举例说明

CommonJS :使用module.exports与exports
es6:使用export与export default

使用区别

require: node 和 es6 都支持的引入
export / import : 只有es6 支持的导出引入
module.exports / exports: 只有 node 支持的导出

这里先介绍CommonJS的module.exports与exports举例说明

先解释 exports 和 module.exports
在一个node执行一个文件时,会给这个文件内生成一个 exports和module对象,
而module又有一个exports属性。他们之间的关系如下图,都指向一块{}内存区域。

exports = module.exports = {};

关系图
在这里插入图片描述
CommonJS定义的模块分为: 模块标识(module)、模块定义(exports) 、模块引用(require)

这里创建a.js文件

var a=11;

index(value){
     consloe.log("值="+value)
}

//第一种导出exports
exports.a=a;
exports.index=index;
或者
exports{
      a,
      index
}

//第二种
module.exports.a=a;
module.exports.index=index;
或者
module.exports={
   a,
   index
}

//应用方式一样都使用require来引入
var  b=require(./a.js);
let b=a.a;  
console.log(b);//11
conssole.log(b.index("我是一个方法"));//值=我是一个方法

exports 和 module.exports两种基本用法相识

es的export与export default

首先我们讲这两个导出,下面我们讲讲它们的区别

  • export与export default均可用于导出常量、函数、文件、模块等
  • 在一个文件或模块中,export、import可以有多个,export default仅有一个
  • 通过export方式导出,在导入时要加{ },export default则不需要
  • export能直接导出变量表达式,export default不行。

举例
创建a.js文件

//export 使用
export const a=11;

export const index1=index1(value){
        console.log(value)
}

export const index2=index2(value){
        console.log(value)
}

//export default使用
const a=11;
index1(value){
        console.log(value)
}

index2(value){
        console.log(value)
}

export default={
    index1,
    index2
}

//应用方式使用import 
import {a,index1,index2 } from './a.js'; //export 使用那些就要一条一条的写在前面{}中
使用
console.log(a);//11
console.log(index1("export 的 index1"))//export 的 index1
console.log(index1("export 的 index2"))//export 的 index2

import  a from './a.js'; //export default可以直接应用全部定义在export default中的方法和属性
使用
console.log(a);//11
console.log(index1("export default的 index1"))//export default的 index1
console.log(index1("export default的 index2"))//export default的 index2

根据自己的开发需求使用

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

module.exports与exports,export与export default之间的关系和区别 的相关文章

  • OOP 中的默认参数是不好的做法吗?

    方法的默认参数是否违反封装 在 C 中不提供默认参数的理由是什么 我会采取this https learn microsoft com en us archive blogs csharpfaq does c have default pa
  • ruby 默认参数习惯用法

    当您想要一个函数有一个默认参数 但该参数依赖于另一个参数 另一个变量时 Ruby 中的习惯用法是什么 例如 在Python中 一个例子是 def insort right a x lo 0 hi None if hi is None hi
  • ruby/rails:扩展或包含其他模块

    我将模块分开 以便它们更易于阅读和搜索 lib features running rb walking rb features rb 他们有 lib features running rb module Features Running e
  • 错误:无法安全地评估递归定义模块的定义

    我很想了解为什么会发生此错误以及解决该错误的最佳方法是什么 我有几个文件types ml and types mli它定义了一个变体类型value可以是许多不同的内置 OCaml 类型 float int list map set 等 由于
  • 扩展无法启用或安装的问题

    php 7 3 5 你好 我的扩展 ext http 有问题 composer 说我缺少 ext http 即使我在composer json 中写了这个 为什么 这就是这个确切的消息 问题1 您的系统中缺少请求的 PHP 扩展 ext h
  • TypeScript 扩展模块中的对象

    我想做的事情确实类似于this https stackoverflow com questions 12802383 extending array in typescript and this https stackoverflow co
  • 具有来自包含器类的静态方法调用的 Ruby 模块

    我需要在模块中定义使用包含该模块的类中的方法的常量 module B def self included base class lt lt base CONST self find end end end class A def self
  • Node.js:如何从模块内获取需要函数的文件名?

    我试图从需要模块功能的地方获取原始文件名 我知道你可以使用 filename获取当前文件 但我想获取原始文件 例如 我有一个简单的模块 模块 js module exports function return print function
  • Python 上的 io.open() 和 os.open() 有什么区别?

    我意识到open 我一直在使用的函数是一个别名io open 以及导入 from os会掩盖这一点 通过以下方式打开文件有什么区别io模块和os module io open 是文件 I O 的首选高级接口 它将操作系统级文件描述符包装在一
  • excel vba 将 system.collections.hashmap 导入模块

    从我的内心微软 Excel 2010安装我已经打开了Visual Basic 编辑器 选项卡开发工具 gt Visual Basic 在 的里面Visual Basic 编辑器我右键单击进入项目窗口并创建了一个module 插入 gt 模块
  • 如何在 Linux 上使用 Python 导出

    我需要在 Python 中进行这样的导出 export MY DATA my export 我尝试过这样做 python mode coding utf 8 import os os system export MY DATA my exp
  • 错误:在 Google 应用引擎上部署节点 js 时找不到模块“/workspace/server.js”

    经过一周的搜索 我无法找到适用于我的 Node js 应用程序的应用程序引擎部署问题的解决方案 我已经用这个替换了原来的代码Express 的 hello world 示例 https expressjs com en starter he
  • Node js:如何获取文件签名标头而不是 mime 类型?

    我下载了this https www npmjs com package mime types我的 Node js 项目的模块 它似乎在某种程度上工作正常 如果你console log mime lookup pathToFile 它返回文
  • 在另一个模块中扩展 Ruby 模块,包括模块方法

    每当我尝试扩展 ruby 模块时 我都会丢失模块方法 include 和extend 都不会执行此操作 考虑一下片段 module A def self say hi puts hi end end module B include A e
  • 如何在模块中使用“before_action”

    我想在模块中使用 before action 不幸的是 我无法让它发挥作用 我正在谷歌搜索 但我发现的一切都无法解决问题 我的模块文件如下所示 module ShowController include SimpleController b
  • Rust 中为什么有 mod 关键字?

    看完之后this https doc rust lang org book crates and modules html 我想知道为什么有一个mod关键字和mod rs 我假设目录层次结构也可以描述模块 必须显式声明模块有几个原因 模块可
  • 指定 gfortran 应该在其中查找模块的目录

    我目前基于模块来编译程序 例如主程序foo这取决于模块bar 如下 gfortran c bar f90 gfortran o foo exe foo f90 bar o 当foo f90 and bar f90位于同一目录中 如何指定 g
  • 用于将 MS Word 表导出到 Excel 工作表的宏

    我有一个包含许多表格的word文档 有谁知道如何编写宏将此类表导出到不同的 Excel 工作表 答案摘自 http www mrexcel com forum showthread php t 36875 http www mrexcel
  • Node.js Async/Await 模块导出 [重复]

    这个问题在这里已经有答案了 我对模块创建有点陌生 想知道 module exports 并等待异步函数 例如 mongo connect 函数 完成并导出结果 在模块中使用 async await 正确定义了变量 但是当尝试通过要求模块来记
  • Perl:测试输入阅读器?

    有没有一种方法可以使用标准 Test 等模块自动测试 Perl 程序是否正在读取输入 例如标准输入正确吗 例如 测试一个从 STDIN 读取两个整数并打印它们之和的程序 这不是 100 清楚你的意思 我会回答假设你想编写一个测试脚本来测试你

随机推荐

  • 嵌入式软件工程师岗位需求

    嵌入式软件工程师岗位需求 A 嵌入式软件开发工程师岗位职责 a 负责嵌入式操作系统的移植和应用开发 xff1b b 负责移动互联网的应用开发 xff1b c 负责嵌入式系统图形界面的开发 xff1b d 负责系统及软件设计文档的编写 xff
  • Marlink通信协议简介

    http qgroundcontrol org mavlink start mavlink协议介绍 https pixhawk ethz ch mavlink 消息简介 MAVLink简介 Mavlink协议最早由 苏黎世联邦理工学院 计算
  • List、Stack、Queue、Set和Map定义和常用方法

    集合 Java容器类库中的两种主要类型 1 每个槽只保存一个元素 Collection xff1a 描述所有序列容器的共性的根接口 xff1b List xff1a 以特定的顺序保存一组元素 xff1b Set xff1a 元素不能重复 x
  • MDK移植freeRTOS及多任务创建

    MDK移植freeRTOS及多任务创建 一 移植前准备二 freeRTOS移植三 创建任务 本文所使用的硬件为野火的指南者开发板 xff0c 购买后 xff0c 商家会提供已经移植好freeRTOS的工程可以直接使用进行开发 但如果没有现成
  • ubuntu如何进入修复模式,单用户模式,在进入系统前调出root用户的终端进行修复

    在进入Ubuntu界面前选择 Advanced options for Ubuntu 这一项进入 进入后在当前界面选择 recovery mode 这一项进入 进入后在当前界面选择 root 这一项进入 此时会在底部出现这样的画面 xff0
  • Semaphore的注意点

    seamphore大家玩的都比较多 xff0c 使用起来也很简单 xff0c 获取令牌和释放 xff0c 但是其中坑却不少 xff0c 而且会让人很难发现 xff0c 希望能通俗易懂的小例子讲明白其中的几个道理 一 线程都被阻塞了 xff1
  • tinymix的命令格式

    come from https blog csdn net jinchengzhou article details 82796888 最近在调试安卓系统的alsa驱动 xff0c 一开始搞不清楚tinymix要怎么用 xff0c 今天终于
  • Ubuntu Core 20新系统介绍

    Ubuntu Core 20是一个轻量 xff0c 容器化 xff0c 基于Ubuntu 20 04 LTS且为物联网设备和嵌入式系统所打造的版本 xff0c 现在已经普遍可用 新版本内建的安全更新严格限制策略使创新者能够开发高安全的产品和
  • python库Argparse中的可选参数设置 action=‘store_true‘ 的用法

    store true 是指带触发action时为真 xff0c 不触发则为假 通俗讲是指运行程序是否带参数 看例子就明白了 一 没有default import argparse parser 61 argparse ArgumentPar
  • 小熊派鸿蒙开发板环境搭建过程(HarmonyOS BearPi-HM Nano)

    小熊派鸿蒙开发板环境搭建过程 实验环境 xff1a 小熊派开发板 xff0c 基于Hi3861V100海思芯片Win10系统Oracle VM VirtualBox虚拟机Ubuntu系统安装包官方提供环境教程 xff08 基本按照这个步骤来
  • ubuntu安装新版本的clang-format 9

    ubuntu安装新版本的clang format 默认可能是clang format 6 0 旧版本的某些配置比如AlignConsecutiveMacros不支持 sudo apt get update sudo apt get inst
  • Android 视频 YUV i420格式转换为位图Bitmap

    Android 视频 YUV i420格式转换为位图Bitmap YUV基础描述 YUV YCbCr xff0c 图像除了RGB xff0c 还有YUV 定义 xff1a 是电视系统所采用的一种颜色编码方法 Y 标识明亮度 xff0c 也就
  • 谷粒学院——第二章、项目搭建

    一 创建父工程 1 创建sprigboot工程guli parent 在idea开发工具中 xff0c 使用 Spring Initializr 快速初始化一个 Spring Boot 模块 xff0c 版本使用 xff1a 2 2 1 R
  • 欧美网站风格特点

    评论一 xff1a 1 简洁 xff0c 平淡 xff0c 严谨 xff08 不习惯艳丽 xff0c 花销的色彩 xff09 2 倾向于将首页做成各类功能 板块的引导界面 xff0c 首页不会放置太多的内容 xff0c 即使有内容表现 xf
  • 2012年展望

    由于各种原因 xff0c 客观的 主观的 不过归根结底还是主观的多一些 xff0c 2011年整体过的很颓废 xff0c 上班大多在上网 xff0c 工作上几乎没有一点成绩 xff0c 自己也是很不满意 2012年世界末日都快来了 xff0
  • Ubuntu允许root远程登陆方法

    Ubuntu中允许root用户远程登录 编辑配置文件 xff1a sudo vim etc ssh sshd config 将PermitRootLogin prohibit password更改为 xff1a PermitRootLogi
  • 航模的遥控与电调

    遥控接收机解码出遥控器的信号 xff0c 有多少路的解多少路 xff0c 解出来的其实就是pwm的脉冲信号 xff0c T 61 20ms 脉宽是1 2ms xff0c 脉宽1ms时表示最小值 xff0c 脉宽2m时表示最大值 xff08
  • Flash某些错误解决

    运行是提示VerifyError 1014 无法找到类 修改文件后 xff0c 加载的总是旧文件 xff1f 清理IE缓存试试
  • Shell编程入门学习

    文章目录 Shell编程Shell脚本的执行方式Shell的变量Shell的变量的介绍shell变量的定义 设置环境变量位置参数变量介绍基本语法 预定义变量基本介绍基本语法 运算符基本语法 条件判断判断语句常用判断条件 流程控制if 判断c
  • module.exports与exports,export与export default之间的关系和区别

    module exports与exports xff0c export与export default之间的区别及使用 这里我就以最简单的方法 xff0c 举例说明 CommonJS xff1a 使用module exports与export