module.exports是
require调用结果实际返回的对象。
该
exports变量最初设置为同一个对象(即它是一个速记“别名”),所以在模块的代码,您通常会写是这样的:
let myFunc1 = function() { ... };let myFunc2 = function() { ... };exports.myFunc1 = myFunc1;exports.myFunc2 = 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


