先建两个文件

  • index.js
  • util.js

在util.js 写一些内容

exports.hello = 'www';exports.add = function (a,v) {return a + v;
}exports.obj = {ww:33};

在index.js引入util.js

console.log('start reauqire')
const util = require('./util');
console.log('end reauqire', util)
console.log('add', util.add)

执行node index.js看到结果

如果在index.js给util加属性会得到什么结果呢?

  • index.js 加属性
// index.js
console.log('start reauqire')
const util = require('./util');
console.log('end reauqire', util)
console.log('add', util.add);util.additional = 'test' // 加这一句
  • util.js 加setTimeout
// util.js
exports.hello = 'www';exports.add = function (a,v) {return a + v;
}
exports.obj = {ww:33};setTimeout(() => {console.log('exports',exports);
}, 2000)
  • 结果

    说明加成功了

那如果用module.exports呢?

  • util.js
exports.hello = 'www';exports.add = function (a,v) {return a + v;
}exports.obj = {ww:33};module.exports = function minus (a,b) {return a - b;
}
  • index.js
// index.js
console.log('start reauqire')
const util = require('./util');
console.log('end reauqire', util)
console.log('add', util.add);util.additional = 'test'
  • 再运行node index.js

    这个时候第二个console打印出来的不是一个对象了,而是module.exports导出的一个minus方法,说明修改module.exports 会覆盖整个exports

再把setTimeout加上呢?

  • util.js
exports.hello = 'www';exports.add = function (a,v) {return a + v;
}exports.obj = {ww:33};module.exports = function minus (a,b) {return a - b;
}
setTimeout(() => {console.log('exports',exports);console.log('module.exports', module.exports);
}, 2000)
  • 打印结果

说明exports和module.exports是不同的对象,但是外部文件require的时候,有module.exports就不会引用exports的,在index.js里additional挂在了exports上,而不是module.exports 上

结论

  • exports和module.exports是不同的对象
  • 修改module.exports 会覆盖整个exports
  • 在外部require文件,有exports和module.exports的时候,给这个文件加属性是加在module.exports 上

公众号

欢迎大家关注我的公众号: 石马上coding,一起成长

Nodejs的exports与module.exports的区别相关推荐

  1. nodeJS学习(9)--- nodeJS模块:exports vs module.exports

    模块简介: 通过Node.js的官方API可以看到Node.js本身提供了很多核心模块 http://nodejs.org/api/ 这些核心模块被编译成二进制文件,可以 require('模块名') ...

  2. node.js中exports与module.exports的区别分析

    前言 关于Node.js中的exports和module.exports,很多时候都比较容易让人混淆,弄不清楚两者间的区别.那么我们就从头开始理清这两者之间的关系. 来源 在开发Node.js应用的时 ...

  3. Node.js: exports 和 module.exports 的区别

    我理解的exports 和 module.exports 的区别,欢迎大家吐槽~ 为了更好的理解 exports 和 module.exports 的关系,我们先来补点 js 基础.示例: app.j ...

  4. exports和module.exports的区别

    请牢记一条原则:无论使用 exports 暴露成员,或是 module.exports 暴露成员,最终暴露的结果,都是以 module.exports 所指向的对象为准. 1.module 对象 看一 ...

  5. nodejs中的exports和module.exports

    module是随文件而生的全局变量,它有exports属性,这个属性默认是一个空的字典. node的设计者画蛇添足有定义了一个exports全局变量,export指向module.exports所指向 ...

  6. Node.js 中 exports 和 module.exports 的区别

    每一个模块中都有一个 module 对象, module 对象中有一个 exports 对象 我们可以把需要导出的成员都放到 module.exports 这个接口对象中,也就是 module.exp ...

  7. 【nodejs】import、export、exports、module.exports

    1.import 和 export(ES6特性) 目录结构 export_file.js export const myNumbers = [1, 2, 3, 4]; const animals = ...

  8. exports 和 module.exports 的区别

    首先我们需要知道的是,node 真正导出的对象是 module.exports 那exports 又是怎么回事呢? 其实,在一开始,exports 和 module.exports 引用的都是同一个 ...

  9. 一文解读exports、module.exports 和 export、export default

    对于前端初学者来说,exports.module.exports 和 export.export default 容易让人产生误解,笔者顺便写篇文章解读一下. 第一部分:exports 和 modul ...

最新文章

  1. Kubernetes安装之证书验证
  2. np.append()
  3. 存储器的保护(二)——《x86汇编语言:从实模式到保护模式》读书笔记19
  4. springboot MVC视图解析流程源码分析
  5. (转)Android中尺寸单位杂谈
  6. SQL Server中的STUFF函数的使用
  7. UIScrollView 滚动视图 (实例)
  8. 认清当下的努力,可能毫无意义
  9. 6-1 稀疏矩阵求和 (70 分)
  10. 行业观察:拐点已至!抛弃传统数据库,乘云而上!
  11. 接受-拒绝采样/拒绝采样(accept-reject sampling/reject sampling)
  12. Python3实现Win10桌面背景自动切换
  13. “office for mac”模板文件的目录
  14. 腰部按摩操有两种做法
  15. 【C语言学习】————操作符、关键字
  16. 8Manage:采购谈判的6个成功策略
  17. 【串口助手】Python从零开始制作温湿度串口上位机
  18. libGDX学习之路02:利用Tiled绘制游戏地图
  19. vue使用vue-video-player播放视频及遇到的问题
  20. 59深度解密五十九:利用“抖音”进行吸粉的简单、另类玩法

热门文章

  1. 不该被隐藏的光芒:上世纪NASA三位被忽视的女性工程师
  2. Gradle与Groovy
  3. 中美塞尔研究中心主任邹晓辉老师融智学道翰天琼认知智能基础奠基理论。
  4. java WEB调用秒嘀科技短信验证接口(实现短信验证登录)
  5. 转发asp.net探针源码
  6. 蚁群算法解决旅行商问题Python
  7. 极域电子书包windows-ios界面展示与使用方法
  8. 女生学UI设计的一些优势,转行者必看!
  9. Windows命令行XCOPY几种应用方法
  10. 如何判断数组的四种方法