Node.js module.exports 的用途是什么,你如何使用它?
我似乎找不到任何关于此的信息,但它似乎是 Node.js 的一个相当重要的部分,因为我经常在源代码中看到它。
根据Node.js 文档:
模块 对当前 module. 特别module.exports 是与导出对象相同。有关 src/node.js更多信息,请参阅。
模块
对当前 module. 特别module.exports 是与导出对象相同。有关 src/node.js更多信息,请参阅。
module
module.exports
src/node.js
但这并没有真正的帮助。
究竟module.exports做了什么,一个简单的例子是什么?
module.exports是作为require调用结果实际返回的对象。
require
该exports变量最初设置为同一个对象(即它是一个速记“别名”),因此在模块代码中您通常会编写如下内容:
exports
let myFunc1 = function() { ... }; let myFunc2 = function() { ... }; exports.myFunc1 = myFunc1; exports.myFunc2 = myFunc2;
导出(或“公开”)内部范围的函数myFunc1和myFunc2.
myFunc1
myFunc2
在调用代码中,您将使用:
const m = require('./mymodule'); m.myFunc1();
最后一行显示的结果如何require(通常)只是一个可以访问其属性的普通对象。
注意:如果您覆盖exports,那么它将不再引用module.exports. 因此,如果您希望分配一个新对象(或函数引用),exports那么您还应该将该新对象分配给module.exports
值得注意的是,添加到exports对象的名称不必与要添加的值的模块内部范围名称相同,因此您可以:
let myVeryLongInternalName = function() { ... }; exports.shortName = myVeryLongInternalName; // add other objects, functions, as required
其次是:
const m = require('./mymodule'); m.shortName(); // invokes module.myVeryLongInternalName