在 Node.js 中,module.exports
是一个用于导出模块的对象。它定义了当前模块对外暴露的接口。本文将介绍 module.exports
的作用、使用方法以及示例代码。
作用
在 Node.js 中,每个文件都被视为一个独立的模块。当我们需要在一个文件中访问另一个文件的变量、函数或对象时,可以使用 require
方法引入该模块。但是,如果我们需要让该模块中的某些内容对外可见,就需要使用 module.exports
来定义它们。
举个例子,假设我们有一个名为 math.js
的文件,在其中定义了一个名为 add
的函数:
// math.js function add(a, b) { return a + b; }
如果我们希望在另一个文件中使用 add
函数,就需要在 math.js
中使用 module.exports
导出它:
// math.js function add(a, b) { return a + b; } module.exports = { add: add };
这样,我们就可以在其他文件中通过 require
方法引入 math.js
模块,并使用 add
函数了:
// main.js const math = require('./math.js'); console.log(math.add(1, 2)); // 输出:3
使用方法
module.exports
可以直接赋值为一个对象、字符串、数值等任意类型的值。一般来说,我们会将需要导出的内容包装在一个对象中。例如,我们可以将 math.js
中的两个函数都导出:
-- -------------------- ---- ------- -- ------- -------- ------ -- - ------ - - -- - -------- ----------- -- - ------ - - -- - -------------- - - ---- ---- --------- -------- --
在另一个文件中引入该模块后,可以通过点号语法访问导出的内容:
// main.js const math = require('./math.js'); console.log(math.add(1, 2)); // 输出:3 console.log(math.subtract(2, 1)); // 输出:1
除了对象之外,还可以使用函数来定义 module.exports
。例如,我们可以将整个模块封装在一个立即执行函数表达式(IIFE)中,并将需要导出的内容作为函数返回值:
-- -------------------- ---- ------- -- ------- -------------- - ----------- - -------- ------ -- - ------ - - -- - -------- ----------- -- - ------ - - -- - ------ - ---- ---- --------- -------- -- -----
这样,在另一个文件中引入该模块时,就可以直接调用该函数并访问其返回值:
// main.js const math = require('./math.js')(); console.log(math.add(1, 2)); // 输出:3 console.log(math.subtract(2, 1)); // 输出:1
示例代码
最后,给出一个完整的示例代码:
-- -------------------- ---- ------- -- ------- -------------- - ----------- - -------- ------ -- - ------ - - -- - -------- ----------- -- - ------ - - -- - ------ - ---- ---- --------- -------- -- -----
// main.js const math = require('./math.js')(); console.log(math.add(1, 2)); // 输出:3 console.log(math.subtract(2, 1)); // 输出:1
希望这篇文章能够对大家理解 module.exports
的作用、使用方法以及实际应用场景有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/7283