iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Node.js中module.exports 和exports使用误区
  • 255
分享到

Node.js中module.exports 和exports使用误区

2024-04-02 19:04:59 255人浏览 薄情痞子
摘要

目录一、module,module.exports ,exports含义二.案例案例一:案例二案例三案例四一、module,module.exports ,exports含义 mod

一、module,module.exports ,exports含义

  • module对象:在每个 .js 自定义模块中都有一个 module 对象,它里面存储了和当前模块有关的信息
  • module.exports 对象:在node里自定义的模块中,可以使用 module.exports 对象,将自定义的模块内部分的成员共享出去被使用。
  • 当外界(其他js文件)用require() 方法导入自定义模块时,得到的就是 module.exports 所指向的对象
  • exports对象:由于 module.exports 单词写起来比较复杂,为了简化向外共享成员的代码,Node 提供了 exports 对象。默认情况下,exports 和 module.exports 指向同一个对象

注意:使用 require() 方法导入模块时,导入的结果,永远以 module.exports 指向的对象为准
换句话说最终共享的结果,还是以 module.exports 指向的对象为准

二.案例

通过案例来理解二者的关系

案例一:

定义代码

//文件名:01.module.exports和exports误区
exports.name="小吴"
module.exports ={
    性别:"男",
    age:18
    
}

输出代码

//文件名:01-test 
//为了测试module.exports ,exports指向结果 案例二三四的输出代码都是此js代码文件
const obj=require("./01.module.exports和exports误区")
console.log(obj);

输出结果

例子1输出结果

案例一解释:因为默认情况下,exports 和 module.exports 指向同一个对象,所以开始二者都是指向一个空对象,当export指向新对象name="小吴"后,此时二者都指向这个对象,但是执行后面代码则是在内存中新开辟一个空间存储新对象 {性别:“男”,age:18} ,且把这个新对象的引用交给了module.exports,则module.exports就指向新的对象,不指向之前的空对象了,而且由于最终共享的结果,以module.exports 指向的对象为准,所以案例输出如上图所示

案例二

定义代码

module.exports.name="小吴"
exports ={
    性别:"男",
    age:18
    
}

输出结果

案例2输出结果

案例二解释:同理当module.exports指向对象name="小吴"后,执行后面代码,,exports指向新对象{性别:“男”,age:18},由于最终共享的结果,还是以 module.exports 指向的对象为准
所以案例输出如上图所示

案例三

定义代码

exports.name="小吴"
module.exports.age=18

输出结果

在这里插入图片描述

案例三解释:同理二者开始指向空对象,第一行代码通过exports引用关系挂载了一个name属性,第二行又通过module.exports引用关系挂载了一个属性age 这里不存在新对象 都是挂载属性 这些属性都被放在了开始二者指向的空对象中,则最终两个属性都在此对象中,且module.exports指向这个对象,所以最终结果输出如上图所示

案例四

定义代码

exports={
    性别:"男",
    name:"小吴",
    
}
module.exports=exports//把export的引用关系通过等号赋值给了module.exports
module.exports.age=18

输出结果

在这里插入图片描述

案例四解释:同理二者开始指向同一空对象,执行代码,在内存中定义了一个新对象,且把新对象挂载在exports上,此时exports就不指向之前的空对象而指向新定义的对象,module.exports=exports这行代码把export的引用关系通过等号赋值给了module.exports,则module.exports也不指向之前的空对象了,也指向新对象了,最后给module.exports指向的新对象又继续挂载了一个age属性,所以里面的所有属性都被module.exports指向到的,所以最终结果输出如图所示

重要注意:为了防止二者指向混乱,建议不要在同一个模块中同时使用 exports 和 module.exports

 到此这篇关于node.js中module.exports 和exports使用误区的文章就介绍到这了,更多相关Node.js module.exports和exports内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Node.js中module.exports 和exports使用误区

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 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.exports和exports使用误区是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中module.exports和ex...
    99+
    2023-06-29
  • module.exports和exports使用误区案例分析
    module.exports和exports使用误区 使用require()模块时,得到的永远都是module.exports指向的对象 1.误区一 exports.username...
    99+
    2023-05-14
    ES6 module.exports exports require node.js
  • Node.js 中的 module.exports 与 exports区别介绍
    目录介绍示例从源码中理解通过示例理解示例一示例二示例三示例四小结介绍 module:每个模块中都有 module 对象,存放了当前模块相关的信息;module.e...
    99+
    2024-04-02
  • Node中module.exports和exports区别是什么
    本篇内容介绍了“Node中module.exports和exports区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、当使用分别...
    99+
    2023-07-05
  • 一文详解Node中module.exports和exports区别
    目录一、当使用分别暴露时,module.exports和exports是一样的二、当使用统一暴露时,它俩是不一样的module.exports的统一暴露使用exports同一个暴露三...
    99+
    2023-03-09
    Node module.exports区别 module exports
  • module.exports和exports怎么正确使用
    这篇文章主要讲解了“module.exports和exports怎么正确使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“module.exports和exports怎么正确使用”吧!mod...
    99+
    2023-07-05
  • Node.JS中的模块、exports和module讲解
    目录模块核心模块文件模块基本数据类型引用数据类型exports和module.exports的关系模块 分为两大类 核心模块 由node引擎提供的模块核心模块的标识就是模块的名字 v...
    99+
    2023-01-11
    node.js模块 exports和module node.js exports和module
  • Js模块打包exports require import的用法和区别
    目录1、Commonjs之 exports和require用法1.1 CommonJS导出之module.exports1.2 CommonJS导入之require2、ES6 Mod...
    99+
    2024-04-02
  • Node.js中Process.nextTick()和Process.setImmediate()的区别
    一、Webstrom使用node.jsIDE的问题 在区别这两个函数之前来说一下Webstrom使用node.jsIDE的问题,在配置Node.js的IDE了,但setImmedia...
    99+
    2024-04-02
  • Node.js中如何使用SQLite3和MongoDB
    Node.js中如何使用SQLite3和MongoDB,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。setup.js:初始化数据库var&...
    99+
    2024-04-02
  • Node.js中同步和异步编程的区别及使用方法
    目录一、进程和线程二、同步和异步同步阻塞异步问题一、进程和线程 代码编写完毕在编译的过程中计算机的内存中会开辟一个空间来存储代码,这个空间就相当于是进程,可以将进程类比于工厂的厂房,...
    99+
    2023-05-18
    Node.js中同步和异步 Node.js 同步 Node.js 异步
  • Node.js中Process.nextTick()和Process.setImmediate()有什么区别
    本篇内容介绍了“Node.js中Process.nextTick()和Process.setImmediate()有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希...
    99+
    2023-07-02
  • Node.js中LTS和Current有哪些区别
    这篇文章给大家分享的是有关Node.js中LTS和Current有哪些区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Node.js LTS 计划Node.js core 在 Node.js 与 io.js 合...
    99+
    2023-06-14
  • 电脑使用中的误区有哪些
    这篇文章主要介绍“电脑使用中的误区有哪些”,在日常操作中,相信很多人在电脑使用中的误区有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”电脑使用中的误区有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-28
  • 使用容器的误区和场景有哪些
    本篇内容主要讲解“使用容器的误区和场景有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“使用容器的误区和场景有哪些”吧!误区一:容器启动速度快,秒级启动这是很...
    99+
    2024-04-02
  • Node.js和Express如何使用
    本篇文章为大家展示了Node.js和Express如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、 Nodejs简介 ==Node是JavaScript语...
    99+
    2024-04-02
  • Node.js中RPC通信和Ajax有哪些区别
    这篇文章主要讲解了“Node.js中RPC通信和Ajax有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js中RPC通信和Ajax有哪些区...
    99+
    2024-04-02
  • JavaScript使用误区有哪些
    这篇文章主要介绍“JavaScript使用误区有哪些”,在日常操作中,相信很多人在JavaScript使用误区有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaSc...
    99+
    2024-04-02
  • node.js express和koa中间件机制和错误处理机制
    目录一、前言二、中间件问题解析三、错误逻辑捕获3.1 express的错误捕获逻辑3.2 同步逻辑错误获取的底层逻辑3.3 异步逻辑错误获取的底层逻辑3.4 koa的错误获取逻辑一、...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作