位置: 编程技术 - 正文

详解Node.js中exports和module.exports的区别(node.js promise)

编辑:rootadmin

推荐整理分享详解Node.js中exports和module.exports的区别(node.js promise),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejs yield,node中的ejs,node.js中的express,node js excel,node中的ejs,node expoter,node中的ejs,node.js ejs,内容如对您有帮助,希望把文章链接给更多的朋友!

今天看了下node.js的require方法的源码,终于搞清楚exports和module.exports的区别了。

我们知道,node.js的模块暴露有两种方法。

1. 方式一:用exports

2. 方式二:用module.exports

如果将第一种方式的exports按照第二种方式写成下面这样就会出错:

exports和module.exports的初始值指向的是空对象,即{}。从源码可以看到,其实模块的require方法实质上是调用了_load方法,而_load方法,最终返回的是module.exports

详解Node.js中exports和module.exports的区别(node.js promise)

来分析一下出错的原因。

由于最开始的时候,exports和module.exports都指向同一个对象。

第一种方式,是在给这个空对象{}添加属性,又因为module.exports也是指向这个对象的,所以最终require方法返回的module.exports是指向了这个具有log方法的对象的,可以引用到模块。

第二种方式是让module.exports指向一片新的内存空间,exports指向的仍然是{},但是由于require方法返回的是module.exports,所以最终也能引入模块。

但是最后那种写法是让exports指向一片新的内存空间,module.exports指向的仍然还是{},那么最终require方法是将module.exports返回,所以会导致报错,说s不是一个function。

所以:

请牢记:require方法返回的是module.exports!

标签: node.js promise

本文链接地址:https://www.jiuchutong.com/biancheng/379413.html 转载请保留说明!

上一篇:nodejs和C语言插入mysql数据库乱码问题的解决方法(nodejs来一打c++扩展)

下一篇:利用node.js本地搭建HTTP服务器(本地 node js 启动vue)

  • 分享PHP函数实现数字与文字分页代码(php函数式编程)

    分享PHP函数实现数字与文字分页代码(php函数式编程)

  • 详解SQL Server的聚焦过滤索引(sql server基本知识)

    SQL Server对创建索引大小有限制,最大是字节,上述直接写的VARCHAR(MAX),所以会出错,切记,切记。

    此时我们在主键上创建非聚集索引,我们在主键RowID上创建一个过滤索引且SomeValue = 'JeffckyWang" class="img-responsive" alt="详解SQL Server的聚焦过滤索引(sql server基本知识)">

    详解SQL Server的聚焦过滤索引(sql server基本知识)

  • SQLServer XML查询快速入门(18句话)

    SQLServer XML查询快速入门(18句话)

  • Solaris 10下载地址(solaris 10安装)

    Solaris 10下载地址(solaris 10安装)

  • Yosemite macOs 在桌面显示硬盘的设置方法(macos桌面)

    Yosemite macOs 在桌面显示硬盘的设置方法(macos桌面)

  • mcupdate.exe是什么进程 mcupdate进程查询(mcupdate.dll)

    mcupdate.exe是什么进程 mcupdate进程查询(mcupdate.dll)

  • chrome调试javascript详解(Chrome调试技巧)

    chrome调试javascript详解(Chrome调试技巧)

  • 详解Python中的from..import绝对导入语句(python中fd)

    详解Python中的from..import绝对导入语句(python中fd)

  • 增值税发票综合服务平台密码
  • 非盈利组织免税资格文件
  • 用人单位延迟给员工交社保怎么办
  • 在建无形资产入账
  • 零售化妆品交什么税种
  • 个人向公司账户存款
  • 销售返利的会计科目
  • 去税务局申报增值税需要带税盘吗
  • 外商投资企业的组织形式,组织机构
  • 备用金现金日记账表格
  • 大数据对管理会计的影响论文
  • 长期借款会计科目编码
  • 采购商品未入库的会计分录
  • 当期软件产品可抵扣进项税额 留抵
  • 免征增值税对应的进项税额怎么处理
  • 付稿费会计分录
  • 会计档案的概念和内容
  • 什么是企业所得税收入
  • 原材料增值税怎么算
  • 网络工程完工后干什么
  • 上月暂估本月怎么冲销
  • 资产评估溢价部分如何处理?
  • 研发样机转销售合法吗
  • 个人独资企业出资额是注册资本吗
  • 个体户定期定额申报表怎么填
  • 留抵税额算进项税额吗
  • 供应商质量扣款
  • w10关闭远程
  • 股票的交易费用多少
  • 共管账户和监管账户是一样的吗知乎
  • 培养自己的php编程能力
  • 用php做一个表格
  • 销售方怎么申请红字信息表
  • 售后回购不符合法律规定
  • php数据库编程
  • 谷歌浏览器如何设置主页为默认页
  • 期末库存盘点表
  • 按工资的14%计提职工福利费
  • 浏览器同源策略限制
  • 如何在Android中找到关闭的文件
  • php数据库搭建
  • 公司财务变更需要变更哪些内容
  • 出租房产怎么交房产税
  • sql2008收缩日志文件
  • 删除mysql57服务
  • mysql all
  • 转让股权溢价账务处理会计分录
  • 研发费用摊销方法
  • 买赠行为的会计处理
  • 微信扣款手续费
  • 企业所得税汇算清缴时间
  • 员工体检费计入什么会计科目里
  • 关于外贸企业出口的规定
  • 个税抵扣项目是什么
  • 退回拨款会计分录怎么做
  • 数据库服务器配置方案
  • win7怎么删除桌面图标
  • 禁用windows杀毒
  • sar 命令
  • centos好玩的命令
  • win10相机模糊
  • win7共享文件夹关闭密码保护
  • linux系统问题汇总
  • debian linux教程
  • Unity3D游戏开发pdf
  • android framework.jar
  • 关于植物的现代诗
  • 黑客dos攻击是什么攻击
  • ntfs权限怎么设置
  • typescript的type
  • JavaScript中Number.MIN_VALUE属性的使用示例
  • js所有知识点
  • 个体 税务登记
  • 广西增值税发票查询平台
  • 税控盘怎么查看开票截止日期
  • 无偿划转暂行规定
  • 企业投资项目备案表模板
  • 税务稽查立案标准金额
  • 进口酒类税收
  • 甘肃税务网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设