位置: 编程技术 - 正文

详解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)

  • 资金账簿印花税减半政策
  • 三证合一后税务登记办理流程
  • 资金收益率计应收账款吗
  • 资产负债表怎么看营业收入
  • 小额支出没有发票怎么做账
  • 融资租赁手续费如何入账
  • 无形资产有合同约定,怎么摊销?
  • 劳务成本科目
  • 股东投入资金大,但不想成为法人
  • 6000万居间费如何避税
  • 股东投入的资金要交税吗
  • 财务费用手续费有哪些
  • 低值易耗品按三年摊销吗
  • 调低社保基数怎么操作
  • 普通股股本属于什么科目
  • 哪些进项税额不允许从销项税额中抵扣?
  • 增值税普通发票税率
  • 关于行邮税四档调三档
  • 增值税扣税凭证包括增值税专用发票
  • 计提印花税会计分录怎么写
  • 权益乘数公式
  • 公账提现到个人账户多久到账
  • 金蝶旗舰版反过账的操作步骤
  • 汇算清缴税务审计报告
  • 药店 医保收入占比
  • 流氓软件怎么卸载?
  • 期间费用包括哪几个科目
  • 私营企业员工享受探亲假吗
  • 股东投入的资金可以退回吗
  • 发票专用章正规位置盖在哪里
  • cpu风扇应该怎么调
  • php数组函数实现机选双色球
  • 固定资产折旧计算方法
  • 注册资金没有的怎么做账
  • 吕宋岛以南坐落着21座极大的岛屿
  • php foo
  • 医院执行政府会计制度补充规定
  • 预提借款税费会减少吗
  • js中写php代码
  • 怎么才能学a1
  • 英文描述什么是利润表
  • 织梦建站详细步骤
  • 织梦官方
  • python uppercase函数
  • 有形动产租赁属于现代服务业吗
  • sql server添加语句
  • 关于材料采购的通知
  • 未开票收入如何记账
  • 固定资产清理往报表哪列示
  • 给慈善机构捐款英语
  • 应付账款借方余额负数表示什么
  • 公司注销其他应付款法人借款
  • 收到客户承兑怎么做账
  • 一般纳税人购货取得普通发票
  • 可供出售金融资产和交易性金融资产
  • 第一份工作的五个条件
  • 新注册公司工商如何做印章确认
  • 公司注销往来账要消吗
  • 新企业的创建
  • 记账凭证的基本要素包括哪些
  • sqlserver控制器名称
  • win8 vmware
  • linux那些事儿
  • windows软件类型最新版本
  • centos6.5修改用户名
  • linux系统的
  • linux内核架构
  • windows 8怎么样
  • EGL简介
  • flask开发实例
  • javascript制作简易计算机
  • unity2d ui
  • javascript字符串操作函数
  • unity火球特效
  • js tojsonstring
  • 沉浸式状态栏xposed模块
  • 怎么用git上传项目
  • 自然人电子税务局
  • 曲靖市国家税务局人员名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设