给萌新的NodeJs技术栈教程(node篇3)--Node.js 模块系统

44 阅读2分钟

备注:这一部分了解有个基础概念,跑下代码就ok啦!

CommonJS 规范

Node.js 的模块系统基于 CommonJS 规范。CommonJS 是一种模块化编程规范,它允许开发者将代码拆分成多个文件(模块),这些模块可以被其他模块引用和使用。这有助于组织和管理代码,提高代码的可读性和可维护性。

在 Node.js 中,每个文件都被视为一个独立的模块。要在一个模块中使用另一个模块,我们需要使用 require() 函数和 module.exports

require() 函数

require() 是一个内置函数,用于从其他模块导入(加载)代码。require() 函数接受一个参数,即要导入的模块的路径(相对或绝对路径),并返回导入模块所暴露的对象或函数。

例如,我们有一个名为 math.js 的模块:

// math.js
const add = (a, b) => a + b;
const multiply = (a, b) => a * b;

module.exports = { add, multiply };

要在另一个文件(如 index.js)中使用 math.js 中的函数,我们可以使用 require() 函数:

// index.js
const math = require('./math'); // 注意:不需要包含 '.js' 扩展名

console.log(math.add(1, 2)); // 输出:3
console.log(math.multiply(3, 4)); // 输出:12

module.exports

module.exports 是一个特殊的对象,用于在模块中导出(暴露)函数、对象或值,以便其他模块可以通过 require() 函数访问它们。

在上面的 math.js 示例中,我们使用 module.exports 导出了一个包含 addmultiply 函数的对象。这样,在其他模块中使用 require() 函数导入 math.js 时,我们可以访问这两个函数。

我们还可以导出单个函数或值,而不是整个对象:

// square.js
const square = (x) => x * x;

module.exports = square;

// index.js
const square = require('./square');

console.log(square(4)); // 输出:16

总之,Node.js 的模块系统允许我们将代码拆分成多个文件(模块),以便更好地组织和管理我们的应用程序。借助 CommonJS 规范以及 require() 函数和 module.exports,我们可以轻松地在模块之间共享代码和功能!