模块系统的必要性
1.代码组织:模块可以将代码库拆分为多个文件,有助于将代码组织成可管理的逻辑单元。这使得代码库更易于理解和维护。
2.可重用性:模块允许您在应用程序的不同部分甚至不同项目之间重用代码。
3.封装:模块封装代码,这意味着它们只公开必要的内容并隐藏内部细节。这样可以防止意外的交互并减少错误。
4.依赖关系管理:一个好的模块系统应该使模块开发人员能够轻松地在现有模块之上进行构建。模块有助于管理应用程序不同部分之间的依赖关系,明确哪些功能取决于哪些功能。
模块 – 是封装相关功能的软件的实际单元 模块系统 – 另一方面,是一组规则、约定和机制,允许在编程语言或环境中创建、导入和使用模块。它定义了如何在应用程序示例中编写、组织和访问模块:CommonJS 和 ECMAScript 模块
CommonJs 模块系统
CommonJs 是 Nodejs.CommonJs 中的第一个模块系统,它遵循 CommonJs 规范,并添加了一些自定义扩展。
- 它使用该函数导入模块。require()
- module.exports 或 exports 是特殊变量,可用于从当前模块导出公共功能。
CommonJS 模块中的 require() 函数是同步的。当您使用 require() 导入模块时,Node.js将同步加载和执行该模块,阻止代码的执行,直到所需的模块完全加载并且其导出可用。
module.exports 与导出
使用 module.exports
是 Node.js 提供的对象,用于定义模块导出的内容。当您将值赋给module.exports 时,会将整个导出对象替换为提供的任何值。
使用导出
exports是对 module.exports 的简写引用。最初,exports 设置为引用与module.exports相同的对象。可以使用 exports 对象向 exports 对象添加属性和方法。
模块定义模式
在Node.js中,有几种用于定义和导出模块的流行模式。这些包括:
-
命名出口 -
导出函数 -
导出类 -
导出实例 -
猴子补丁
命名导出
使用 module.exports 或 exports 从模块导出多个值。
导出函数
导出类
模块还可以导出一个类,然后可以通过导入代码实例化该类。
导出实例
可以导出类的实例,而不是导出类,确保存在单个共享实例。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90935.html