Node模块
  TEZNKK3IfmPf 2023年11月13日 27 0

浏览器开发中的模块,在浏览器开发中为了避免命名冲突,方便维护等等,我们采用类或者立即执行函数的方式来封装 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);

Node模块

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2023年11月13日   22   0   0 typescriptnode
  TEZNKK3IfmPf   2023年11月14日   76   0   0 node
  TEZNKK3IfmPf   2023年11月13日   28   0   0 Podkubernetesnode
  TEZNKK3IfmPf   2023年11月14日   24   0   0 node
  TEZNKK3IfmPf   2023年11月13日   36   0   0 nodevue
  TEZNKK3IfmPf   2023年11月13日   27   0   0 nodejs
  TEZNKK3IfmPf   2023年11月13日   28   0   0 node
TEZNKK3IfmPf