美文网首页Vue
Node.js Module.exports和exports

Node.js Module.exports和exports

作者: Kevin丶CK | 来源:发表于2019-12-21 17:39 被阅读0次

在NodeJS中,一般将代码合理拆分到不同的JS文件中,每一个文件就是一个模块,而文件路径就是模块名。每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {},用作文件的导出。

创建一个main.js,打印moudle

console.log(module);
module
Node为每个模块提供一个exports变量,指向module.exports。可以通俗的理解为:exports和module.exports指向同一个对象,及exports = module.exports = {};
给Module.exports添加属性类似于给exports添加属性。例如:
module.exports.name = function() { 
console.log('My name is kevin'); 
}; 

同样,exports是这样的 :

exports.name = function() { 
console.log('My name is kevin'); 
}; 

module.exports

(1)程序导出的永远是 module.exports
(2)如果你创建了 既有 exports 又有 module.exports 的模块,那它会返回 module.exports(如下图)


为什么要拿一个 exports 来做 module.exports 的引用?而不是直接使用 module.exports ?
其实是为了保证,模块的初始化环境是干净的。同时也方便我们,即使改变了 module.exports 指向的对象后,依然能沿用 exports的特性。通过exports = module.exports的方法,让其恢复原来的特点。

使用场景

什么情况下使用module.exports,什么时候用exports?
如果你想你的模块是一个特定的类型就用Module.exports。如果你想的模块是一个典型的“实例化对象”就用exports;及你的模块属于“模块实例(module instances)”,就像官方文档中给出的示例那样,那么exports足以满足要求。
最后用官方的一句话,简述两者区别:

If you want the root of your module’s export to be a function (such as a constructor) 
or if you want to export a complete object in one assignment instead of building it one property at a time, 
assign it to module.exports instead of exports.

相关文章

  • 暴露API

    exports和module.exports 是node.js两种对外暴露的方式。 注意 exports返回的是对...

  • 六.JavaScript——exports、module.exp

    node.js中的导入导出 定义 exports——导出 module.exports——导出 require——...

  • exports, module.exports, export

    一、exports 与 module.exports 介绍:exports 和 module.exports是No...

  • module.exports与exports的区别

    module exports = module.exports = {} 所以module.exports和exp...

  • 原生node

    module.exports和exports的区别? module.exports和exports的区别:在Com...

  • node 模块系统

    nodejs模块中exports和module.exports的区别 module.exports与exports...

  • Node学习

    1.exports 和module.exports 的区别 exports 是 module.exports的别名...

  • 2017-06-13今日总结

    经历: 今天看了exports和module.exports,然后尝试着写了node.js的题 还有就是看了一会数...

  • Node.js 之学习笔记

    这里有一只小白在学习Node.js,相关大神请撤离 :) module.exports和exports的区别 首先...

  • Node相关

    1、module.exports和exports使用方法一致 exports是module.exports的别名,...

网友评论

    本文标题:Node.js Module.exports和exports

    本文链接:https://www.haomeiwen.com/subject/qlegnctx.html