Node.js 中 Module.exports 和 Exports 的区别21 Feb 2025 | 阅读 6 分钟 Node.js 最重要的特性之一是其对模块的支持,模块是代码的可重用块,可以在应用程序的多个区域共享。在 Node.js 中,模块使用 CommonJS 模块系统定义,该系统允许我们通过两种方式导出模块功能:module.exports 和 exports。在本文中,我们将了解这两种策略之间的区别以及何时使用它们。 Node.js 中的 module.exports 是什么?Node.js 模块包含在它们的作用域内,这意味着除非它们被明确导出,否则它们的所有变量和函数只能在模块内部访问。一个特殊的内置对象允许我们将模块的功能导出,那就是 module.exports。当我们为 module.exports 指定一个值时,我们实际上是用一个新的对象替换了整个 exports 对象。例如,我们有一个 math.js 模块,它导出了 add 函数 在此示例中,我们将 add 函数赋值给了 module.exports,因此当我们在程序的另一个区域使用此模块时,我们将获得 add 函数 Node.js 中的 exports 是什么?exports 仅仅是 module.exports 的一个引用。当我们为 exports 设置值时,我们实际上是在修改 module.exports 对象。例如,让我们修改 math.js 模块以使用 exports 而不是 module.exports 我们将一个包含单个属性的对象赋值给了 exports。如果我们的应用程序需要此模块,我们可以使用 add 函数作为生成对象的属性来访问它 何时使用 module.exports 和 exports?当我们希望从模块中导出一个函数或对象时,使用 modules.exports 会很有益。但是,如果我们希望从模块中导出多个属性或函数,exports 模块会派上用场。例如,假设我们有一个 utils.js 模块,它导出了许多实用函数 在此示例中,我们使用 exports 从模块中导出了多个函数。当我们在应用程序中需要此模块时,我们可以将这些函数作为最终对象的属性来使用
关于 module.exports文件名:calculator.js示例让我们举一个例子来演示 Node.js 中的 module.exports。 文件名:operation.jsJavaScript输出 Addition -> 140 Subtraction -> 60 Multiplication -> 4000 Division -> 2.5 关于 exports文件名:calculator.jsJavascript文件名:operation.jsJavascript输出 Addition -> 140 Subtraction -> 60 Multiplication -> 4000 Division -> 2.5 Module.exports 和 Exports 的主要区别Node.js 中的 Module.exports 和 Exports 之间存在一些区别。主要区别如下:
修改 Module.exports 属性说明在此示例中,我们在上面的代码示例中的 math 模块内定义了 add 和 subtract 两个函数。之后,我们使用 module.exports 来导出这些函数。 1. 函数定义Add:在给出两个参数 a 和 b 时,它返回它们的总和。 Subtract:在接收两个参数 a 和 b 后,它返回 a 减去 b。 2. 导出函数Module.exports.add = add;:导出 add 函数,以便可以在此模块外部使用它。 Module.exports.subtract = subtract;:与此类似,导出 subtract 函数。 3. 使用模块Const math = require("./math");:它引入了 math 模块,该模块包含加法和减法函数。 使用参数 2 和 3,math.add(2, 3) 函数调用导入的 math 模块中的 add 函数,结果为 5。 使用参数 2 和 3,math.subtract(2, 3) 调用导入的 math 模块中的 subtract 函数,结果为 -1。 修改 exports 属性说明1. 函数定义Add:add 函数接受两个参数 a 和 b,并输出它们的总和 (a + b)。 Subtract 函数:它在接受两个参数 a 和 b 后返回 a - b 的结果。 2. 导出函数exports.add = add;:CommonJS 模块使用此语法导出 add 函数,以便可以从另一个模块访问它。 同样,exports.subtract = subtract; 导出 subtract 函数。 3. 导入和使用模块使用 const math = require("./math"); 导入 math 模块时,会导入 add 和 subtract 函数。 Math.add(2, 3):它使用输入 2 和 3 调用导入的 math 模块中的 add 函数,结果为 5。 Math.subtract(2, 3):此函数在调用时使用输入 2 和 3 返回 -1,并且是导入的 math 模块的一部分。 |
在 Web 开发方面,工具和平台的选择在项目的生产性工作中起着至关重要的作用。XAMPP 和 Node.js 是两个常用的 Web 应用程序框架,用于构建具有卓越功能的服务器端应用程序。因此,了解它们的区别...
阅读 6 分钟
在本文中,我们将讨论 Node.js 在 Gatsby.js 中的区别。在讨论它们的区别之前,我们必须了解 Node.js 和 Gatsby.js。Node.js 是什么?Node.js 是一个开源的跨平台 JavaScript 运行时环境,与包括 Windows、Linux 在内的多种操作系统兼容。
阅读 4 分钟
Node.js 中的 Buffer.copy() 方法是一个关键函数,它有助于将数据从一个缓冲区复制到另一个缓冲区。该方法在需要高效处理二进制数据的场景中特别有用,例如网络通信、文件 I/O 操作、加密算法以及...
阅读 8 分钟
在本文中,我们将讨论 Mithril.js 和 Node.js 之间的区别。在讨论它们的差异之前,我们必须了解 Mithril.js 和 Node.js 及其功能。什么是 Mithril.js?Mithril.js 是一个相对较新的客户端编程框架,用于开发 SPA 应用程序,它强调简单性和性能。它是一个...
阅读 4 分钟
在本文中,我们将讨论 Node.js httpServerResponse.headersSent 属性的语法、参数和示例。Node.js httpServerResponse.headersSent 属性是什么?我们可以使用 HTTP 提供的类 ServerResponse 的 httpServerResponse.headersSent 应用程序接口来查找头部是否已发送...
5 分钟阅读
AsyncLocalStorage.exit(callback[, ...args]) 是 Node.js 中的一个函数,它允许开发人员退出 AsyncLocalStorage 实例的上下文。它对于协调异步任务尤其重要,因为在异步操作的执行期间可以存储和访问数据。AsyncLocalStorage.exit() 确实保证某些...
阅读 4 分钟
可观测性被认为是监控性能、诊断各种问题并保持任何 Node.js 应用程序平稳运行的最关键条件之一。在 Node.js 环境中,在可观测性方面最重要的两个领先解决方案是 OpenTelemetry 和 Datadog,两者都……
阅读 4 分钟
在本文中,我们将讨论 Node.js 的 MessageChannel.postMessage() 方法,包括其语法、参数和示例。什么是? worker_threads 模块为 MessageChannel.postMessage() 函数中的 Worker 类提供了一个集成应用程序编程接口,用于将消息从一个端口发送到另一个端口。Node.js MessageChannel.postMessage()...
阅读 4 分钟
与数据库管理相关的事务处理是指在一个或多个 SQL 调用中完成的单个协调工作。事务承诺所有操作要么成功执行,要么都不执行,从而有助于维护数据库...
阅读 4 分钟
Node.js 中的 Stream API,ReadableStreamBYOBReader 是一个对象,它通过块来启用数据消耗和数据处理。ReadableStreamBYOBReader 的 read(view[, options]) 方法在使用二进制流时特别常用。此方法允许开发人员将数据读入...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India