当前位置:   article > 正文

node.js 导出模块的两种方式 exports module.exports_js默认导出模块怎么设置module.exports

js默认导出模块怎么设置module.exports

导出模块的两种方式

参考https://nodejs.org/api/modules.html#modules_exports_shortcut

  • exports
  • module.exports
// 定义方法,常量
const myPI = 3.14
const add = (a,b) => a + b;

// 导出,两种方法任意都可以
// 方法一:
exports.myPI = myPI
exports.add = add

// 方法二:
module.exports.myPI = myPI
module.exports.add = add

// 方法二(变形)
module.exports  = {
    myPI,
    add
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在阅读其它人的代码时,可能会遇到这两种不同的写法。所以我们还是有必要了解一下的。

cookie模块,body-parser模块,arry-flatten模块中的导出均采用不同的方式。

两个对象的关系

  • 初始exportsmodule.exports是指向同一块内存区域,其内容都是一个空对象。(exports是module.exports的别名)即:
  exports === module.exports // 输出是 true
  • 1

所以下面两种写法的效果是一样的:

 //1 mymodule.js
 exports.f = function(){ }
 exports.pi = 3.1415926

 //2 mymodule.js
 module.exports.f = function(){ }
 module.exports.pi = 3.1415926
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 在定义模块时:
    如果直接给exports对象赋值(例如:exports={a:1,b:2}),此时,exports就不会再指向module.exports,而转而指向这个新对象,此时,exportsmodule.exports不是同一个对象。

在引入某模块时:以该模块代码中module.exports指向的内容为准。

图示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

结论

在导出模块过程中,建议只用一种方式(建议直接使用module.exports)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/611373
推荐阅读
相关标签
  

闽ICP备14008679号