返回顶部
首页 > 资讯 > 前端开发 > JavaScript >一文详解Node中module.exports和exports区别
  • 796
分享到

一文详解Node中module.exports和exports区别

Node module.exports区别module exports 2023-03-09 17:03:11 796人浏览 独家记忆
摘要

目录一、当使用分别暴露时,module.exports和exports是一样的二、当使用统一暴露时,它俩是不一样的module.exports的统一暴露使用exports同一个暴露三

一、当使用分别暴露时,module.exports和exports是一样的

math.js

const add = (a, b) => a + b
const subtract = (a, b) => a - b
module.exports.add = add
module.exports.subtract = subtract

index.js

const math = require('./math')
console.log(math.add(2, 3))
console.log(math.subtract(2, 3))

执行 node .\index.js会打印5和-1

此时,若你在math.js中使用exports分别暴露时也是可以的:

// module.exports.add = add
// module.exports.subtract = subtract
exports.add = add
exports.subtract = subtract

二、当使用统一暴露时,它俩是不一样的

module.exports的统一暴露

实际中我们经常这样写

module.exports = { add, subtract }

此时执行node index还是会打印5和-1

使用exports同一个暴露

// module.exports = { add, subtract }
exports = { add, subtract }

此时再执行node index会报错:

TypeError: math.add is not a function

三、为什么exports可以分别暴露,但不能统一暴露

观察源码里这几句代码:

const exports = this.exports;  
const thisValue = exports;  
const module = this;

由此可见,exports和module.exports指向同一个对象。所以当你使用分别暴露时,实质上是给这个对象上添加了一个个属性,这两种方式是同一个意思。

但是,一旦写成统一暴露,exports = { add, subtract }改变了exports的指向,切断了与module.exports之间的引用关系,exports不再是module.exports的那个对象了

四、总结

  • 一般情况下,我们都会使用module.exports统一暴露,即导出一个对象
  • 如果使用分别暴露,module.exports和exports是一样的,此时exports是module.exports的简写,但很少这样做

以上就是一文详解Node中module.exports和exports区别的详细内容,更多关于Node module.exports区别exports的资料请关注编程网其它相关文章!

--结束END--

本文标题: 一文详解Node中module.exports和exports区别

本文链接: https://lsjlt.com/news/199131.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一文详解Node中module.exports和exports区别
    目录一、当使用分别暴露时,module.exports和exports是一样的二、当使用统一暴露时,它俩是不一样的module.exports的统一暴露使用exports同一个暴露三...
    99+
    2023-03-09
    Node module.exports区别 module exports
  • Node中module.exports和exports区别是什么
    本篇内容介绍了“Node中module.exports和exports区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、当使用分别...
    99+
    2023-07-05
  • 详解nodejs中exports和module.exports的区别
    require 用来加载代码,而 exports 和 module.exports 则用来导出代码。但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 expo...
    99+
    2022-06-04
    详解 区别 exports
  • 详解Node.js中exports和module.exports的区别
    今天看了下node.js的require方法的源码,终于搞清楚exports和module.exports的区别了。 我们知道,node.js的模块暴露有两种方法。 1. 方式一:用exports /...
    99+
    2022-06-04
    详解 区别 Node
  • Node.js 中exports 和 module.exports 的区别
    Node.js 中exports 和 module.exports 的区别 require 用来加载代码,而 exports 和 module.exports 则用来导出代码。但很多新手可能会迷惑于 exp...
    99+
    2022-06-04
    区别 js Node
  • Node.js 中的 module.exports 与 exports区别介绍
    目录介绍示例从源码中理解通过示例理解示例一示例二示例三示例四小结介绍 module:每个模块中都有 module 对象,存放了当前模块相关的信息;module.e...
    99+
    2024-04-02
  • Node.js中module.exports 和exports使用误区
    目录一、module,module.exports ,exports含义二.案例案例一:案例二案例三案例四一、module,module.exports ,exports含义 mod...
    99+
    2024-04-02
  • node.js中module.exports与exports用法上的区别
    Node.js 引入了模块(Module)概念,一个模块可以通过module.exports 或 exports 将函数、变量等导出,以使其它 JavaScript 脚本通过require() 函数引入并...
    99+
    2022-06-04
    区别 js node
  • Node.js中module.exports和exports使用误区是什么
    这篇文章主要讲解了“Node.js中module.exports和exports使用误区是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中module.exports和ex...
    99+
    2023-06-29
  • 一文详解Golang中new和make的区别
    目录1. 简介2. new 函数2.1 new 函数的作用2.2 new 函数的语法3. make 函数3.1 make 函数的作用3.2 make 函数的语法4. 区别对比4.1 ...
    99+
    2023-05-19
    Go中new和make区别 Golang new和make Golang new make
  • 详解Node中导入模块require和import的区别
    ES6标准发布后,module成为标准,标准的使用是以export指令导出接口,以import引入模块,但是在我们一贯的node模块中,我们采用的是CommonJS规范,使用require引入模块,使用mo...
    99+
    2022-06-04
    详解 模块 区别
  • 一文详解gitee个人和企业区别
    随着国内开源软件开发的蓬勃发展,开源托管平台的需求也愈加增长。目前国内有很多开源托管平台,其中比较常用的平台是GitHub和Gitee。Gitee是目前国内比较火的一个开源托管平台,由阿里云旗下的中国科学院软件研究所支持开发。Gitee的个...
    99+
    2023-10-22
  • 一文详解Node中的Express和路由模块
    本篇文章带大家一起学习Node,深入介绍一下Express和路由模块的使用方法,希望对大家有所帮助!ExpressExpress是基于Node.js平台,快速、开放、极简的Web开发框架。Express的作用和Node.js内置的http模...
    99+
    2023-05-14
    node nodejs Express 路由
  • 详解JS中? ?和?. 和||的区别
    目录1、 与 || 的区别2、 和 . 的区别1、 与 || 的区别 1)相同点: 和 || 的用法相同,都是前后是值,中间用符号连接,根据前面的值来判断最终是返回前面的值还是后面...
    99+
    2024-04-02
  • Servlet中/和/*的区别详解
    目录本文提纲版本约定✍正文点拨“市面上”的错误答案1、/用于Servlet,demo:这个urlPatterns是合法的。只不过它属于精确匹配,也就是说别看它中间有*,仍...
    99+
    2024-04-02
  • mysql中#{}和${}的区别详解
    #{}会将传入的数据当成一个字符串,会对自动传入的数据加一个双引号 order by #{userId}   这里假如userId = 111,那么解析成sql时...
    99+
    2024-04-02
  • mybatis中#{}和${}的区别详解
    目录一、MyBatis中${}和#{}的区别1.1 ${}和#{}演示1.2 SQL注入问题1.3 ${}和#{}的区别1.4 #{}底层是如何防止SQL注入的?1.4.1 网上的答...
    99+
    2024-04-02
  • js中Node和Element有哪些区别
    这篇文章主要介绍了js中Node和Element有哪些区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。准备工作在正式开始介绍 Node 和...
    99+
    2024-04-02
  • 一文详解Node中express的身份认证
    基于前后端分离的新型Web开发模式前后端分离的概念:前后端分离的开发模式,依赖于Ajax技术的广泛应用。简而言之,前后端分离的Web开发模式,就是后端只负责提供API接口,前端使用Ajax调用接口的开发模式。前后端分离的优缺点优点:1)开发...
    99+
    2023-05-14
    node Express
  • xml中node和element的区别有哪些
    这篇文章主要介绍“xml中node和element的区别有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“xml中node和element的区别有哪些”文章能帮助...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作