Node模块

什么是模块

浏览器开发中的模块,在浏览器开发中为了避免命名冲突,方便维护等等,我们采用类或者立即执行函数的方式来封装 JS 代码,来避免命名冲突和提升代码的维护性,其实这里的一个类或者是一个立即执行的函数就是浏览器开发中的一个模块,如下所示:

let obj = {
	模块中的业务逻辑代码
};
;(function(){
	模块中的业务逻辑代码
	window.xxx = xxx;
})();

如上的方式存在的问题,没有标准没有规范

NodeJS开发中的模块

NodeJS 采用了 CommonJS 规范实现了模块系统

CommonJS规范

CommonJS 规范规定了如何定义一个模块,如何暴露(导出)模块中的变量函数,以及如何使用定义好的模块

  • 在 CommonJS 规范中一个文件就是一个模块
  • 在 CommonJS 规范中每个文件中的变量函数都是私有的,对其他文件是不可见的,也就是其它文件访问不到的
  • 在 CommonJS 规范中每个文件中的变量函数必须通过 exports 暴露(导出)之后其它文件才可以使用
  • 在 CommonJS 规范中想要使用其它文件暴露的变量函数必须通过 require() 导入模块才可以使用

例如如下所示:

a.js 内容如下

let name = "it6666.top";

function sum(a, b) {
    return a + b;
}

exports.str = name;
exports.fn = sum;

b.js 内容如下

let aModule = require("./06-a");

console.log(aModule);
console.log(aModule.str);

let res = aModule.fn(10, 20);
console.log(res);

posted @   BNTang  阅读(89)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示