当前位置: 首页 > wzjs >正文

金山网站建设关键词排名2018做网站赚钱不

金山网站建设关键词排名,2018做网站赚钱不,wordpress 新闻页面,wordpress手机端插件目录 Node.js 模块加载机制详解 1. 什么是模块? 2. 模块加载顺序 3. 核心模块加载 4. 自定义模块加载 5. 目录作为模块(index.js) 6. require.resolve() 查找模块路径 7. module 对象解析 8. require.cache 机制(避免重复…

目录

Node.js 模块加载机制详解

1. 什么是模块?

2. 模块加载顺序

3. 核心模块加载

4. 自定义模块加载

5. 目录作为模块(index.js)

6. require.resolve() 查找模块路径

7. module 对象解析

8. require.cache 机制(避免重复加载)

9. 加载 JSON 模块

10. 加载第三方模块

结论


这里是一篇关于 Node.js 模块加载机制 的详细介绍,适合作为博客发布。它涵盖了模块加载的基本概念、加载顺序、核心模块、自定义模块、第三方模块等内容,并包含完整代码示例。


Node.js 模块加载机制详解

1. 什么是模块?

在 Node.js 中,模块(Module)是一个独立的 JavaScript 文件,封装了一些功能,使代码更易复用和管理。Node.js 提供了三类模块:

  1. 核心模块(Core Module):Node.js 自带的,如 fspathhttp
  2. 文件模块(File Module):用户自定义的 JavaScript 文件,如 moduleA.js
  3. 第三方模块(Third-party Module):通过 npm 安装的,如 expresslodash

2. 模块加载顺序

Node.js 使用 require() 方法加载模块,其加载顺序如下:

  1. 先检查 核心模块,如 fspath
  2. 如果不是核心模块,则按照 文件或目录 查找:
    • 先尝试加载 相对路径绝对路径 文件,如 require('./moduleA')
    • 如果是文件模块,会自动补全 .js.json.node 后缀。
    • 如果是目录,会查找 package.json 里的 main 字段或 index.js
  3. 如果未找到文件,则在 node_modules 目录 查找。

3. 核心模块加载

核心模块是 Node.js 自带的,可以直接 require

示例:加载 fs 模块读取文件

📄 文件名:coreModule.js

const fs = require('fs'); // 加载核心模块
const data = fs.readFileSync(__filename, 'utf-8'); // 读取当前文件内容
console.log(data); 

📌 运行结果:会打印 coreModule.js 文件的内容。


4. 自定义模块加载

Node.js 默认采用 module.exportsrequire 进行模块化管理

📄 文件名:math.js(自定义模块)

// 定义一个数学运算模块
function add(a, b) {return a + b;
}function subtract(a, b) {return a - b;
}// 导出模块
module.exports = {add,subtract
};

📄 文件名:main.js(主文件,调用 math.js)

const math = require('./math'); // 加载自定义模块console.log(math.add(5, 3));     // 输出: 8
console.log(math.subtract(5, 3)); // 输出: 2

📌 运行结果

8
2

5. 目录作为模块(index.js

如果 require() 引用了一个目录,则默认加载 index.jspackage.jsonmain 指定的文件。

📁 目录结构:

/myModule├── index.js├── math.js└── main.js

📄 文件名:index.js(目录的默认入口文件)

module.exports = require('./math'); // 让目录直接导出 math.js

📄 文件名:main.js(测试)

const math = require('./myModule'); // 直接加载目录
console.log(math.add(10, 2)); // 输出: 12

📌 运行结果

12

6. require.resolve() 查找模块路径

require.resolve() 可以查看某个模块的完整路径。

📄 文件名:resolve.js

console.log(require.resolve('fs')); // 核心模块
console.log(require.resolve('./math')); // 本地模块

📌 运行结果

fs
/path/to/math.js

7. module 对象解析

Node.js 内部有一个 module 对象,可以查看当前模块信息。

📄 文件名:moduleInfo.js

console.log(module); // 打印当前模块信息

📌 运行结果(部分信息)

{"id": ".","exports": {},"parent": null,"filename": "/path/to/moduleInfo.js","loaded": false
}

8. require.cache 机制(避免重复加载)

Node.js 会缓存已经加载的模块,以提高性能。如果需要强制重新加载,可以删除缓存。

📄 文件名:cacheTest.js

const math = require('./math');
console.log(math.add(2, 2)); // 第一次加载delete require.cache[require.resolve('./math')]; // 清除缓存const mathNew = require('./math'); 
console.log(mathNew.add(3, 3)); // 重新加载

📌 运行结果

4
6

9. 加载 JSON 模块

📄 文件名:data.json

{"name": "NodeJS","version": "1.0.0"
}

📄 文件名:loadJSON.js

const data = require('./data.json'); // 直接加载 JSON
console.log(data.name); // 输出: NodeJS
console.log(data.version); // 输出: 1.0.0

📌 运行结果

NodeJS
1.0.0

10. 加载第三方模块

步骤

  1. 使用 npm install lodash 安装 lodash 模块。
  2. 代码示例:

📄 文件名:thirdParty.js

const _ = require('lodash'); // 加载 lodash 库
console.log(_.capitalize('hello world')); // 输出: Hello world

📌 运行结果

Hello world

结论

Node.js 的模块加载机制非常灵活,通过 require() 可以加载核心模块、自定义模块和第三方模块。它的查找顺序是 核心模块 → 文件模块 → node_modules,并且具有缓存机制,提高了加载效率。

学习和掌握这些模块机制,有助于更高效地开发 Node.js 应用! 🚀

 

http://www.dtcms.com/wzjs/549521.html

相关文章:

  • 济南网站建设哪里好黄石市城市建设档案馆网站
  • 如何建立一个外贸公司网站一般设计网站页面用什么软件
  • 不写编程可以做网站建设wordpress 评分
  • 高端网站建设公司有必要做吗大学英文网站建设方案
  • 怎样用虚拟空间做网站做网站要学的教程
  • 衡水网站建设 燕丰收网站专题页面设计规范
  • 呼伦贝尔市住房和城乡建设局网站如何让我的网站被百度收录
  • 注册网站刀具与钢材经营范围wordpress主题创建后门
  • 网站建设质量管理定义华为官网商城手机价格
  • app开发和网站开发湖北省建设银行网站
  • ppt模板免费下载网站 知乎海淀网站建设电话
  • 基于微信公众平台的微网站开发怎么做网站免费的
  • 检查网站死链接做网站浏览器标签一般放哪
  • 海尔网站推广策划方案大连科技网站制作
  • wordpress 弹出层网站优化招聘
  • 黄页营销网站视频免费大全公司为什么做网站
  • 莱州网站建设制作微网站如何做微信支付宝支付宝支付接口
  • 新开的公司怎么做网站苏州企业黄页
  • 电商商城网站建设方案适合大学生举办的活动策划
  • 软件开发培训机构课程宁波网站搜索优化
  • 网站改版汇报如何设置网站的关键词
  • 许昌市建设信息网站燕郊网站制作
  • 建网站需要花哪些钱凡科代理平台
  • 常州做网站建设的公司天津网约车
  • 重庆微信开发网站建设十大互联网公司排名
  • 绿色蔬菜网站模板深圳展厅装修公司企业展厅设计公司
  • 淘宝网站建设维护会计科目达人室内设计网官方
  • 商务型网站网站内容页模板
  • 制作英文网站费用开发小程序需要多久
  • 单位网站建设情况汇报wordpress换空间搬家