博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node中exports与module.exports的区别
阅读量:5986 次
发布时间:2019-06-20

本文共 876 字,大约阅读时间需要 2 分钟。

hot3.png

exports其实是module中的一个属性,exports是module.exports的一个别名

exports = module.exports = {}
既然exports = module.exports为什么通常都是用module.exports而不是exports
举个例子:
有两个js文件,a.js和b.js,b想获取a中的内容

// a.jslet str = '今天天气很好啊!';exports = str;---***---// b.jslet b = require(./a.js);console.log(b); // {}

此时取的结果是{},原因在于nodejs在内置代码中输出结果时,用的是return module.exports

大致过程是这样的

// 初始化的时候都是空对象exports = module.exports = {};// 此时给exports赋值了exports = str; // exports=‘今天天气很好啊!’,但是module.exports = {}// node在return时,返回的是module.exports的值,所以最后输出的结果为{}

如果我们不想用module.exports,只想用exports操作该怎么办呢!

// a.jsvar str = '今天天气很好啊!';// 给module中的exports属性值中添一个属性a,值为strexports.a = str; // => exports = module.exports = { a : '今天天气很好啊!'};---***---// b.jslet b = require(./a.js);// 这时就不能单纯的获取b,而是要表明获取的是b中的某一个具体属性,这里就是b.aconsole.log(b.a); // 今天天气很好啊!

由于这种操作比较麻烦,所以我们一般用module.exports

转载于:https://my.oschina.net/bangxia/blog/2251887

你可能感兴趣的文章
阿里云code登录,阿里云code使用教程
查看>>
Java类加载的过程
查看>>
Cloud Toolkit 1.1.0 支持 Command 清理
查看>>
远程桌面服务当前正忙,因此无法完成您尝试执行的任务
查看>>
CentOS 7 MySql 解压版安装配置
查看>>
Tomcat部署多域名ssl证书
查看>>
Java 12 / JDK 12 正式发布
查看>>
从码农到工程师:只要做到这6点
查看>>
RabbitMQ快速入门
查看>>
Python程序结构2
查看>>
第四章(上)
查看>>
Confluence 6 编辑自定义 Decorators
查看>>
开源独角兽公司 Confluent 获1.25亿美元D轮融资
查看>>
使用with open语句(未完)
查看>>
如何对基因组序列进行注释
查看>>
Foxify v0.10.7 发布,基于 TypeScript 的 Node 框架
查看>>
【Linux】Bash Shell之命令续篇
查看>>
node.js 编程 小知识
查看>>
httpd关于php
查看>>
第62期CIO时代信息化大讲堂:智能运维与海量日志分析
查看>>