莱芜网站优化平台,wordpress首页图片不显示图片,discuz网站建设,江阴哪里有做网站推广1.模块概念
模块#xff1a;指解决一个复杂问题的时候#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来讲#xff0c;模块是可以组合、分解和更换的单元。
在编辑领域中的模块#xff0c;就是遵守固定的规则#xff0c;把一个大文件拆成独立并且相互…1.模块概念
模块指解决一个复杂问题的时候自顶向下逐层把系统划分成若干模块的过程。对于整个系统来讲模块是可以组合、分解和更换的单元。
在编辑领域中的模块就是遵守固定的规则把一个大文件拆成独立并且相互依赖的多个小模块。
代码进行模块拆分的好处有提高代码的复用性提高代码的可维护性可以实现按需加载。
2.模块分类
2.1、内置模块内置模块是由Node.js官方提供的如fs、path、http等
fs 模块用于文件操作包括读取文件、写入文件、创建目录、删除文件等。http 模块用于创建 HTTP 服务器和客户端可以处理 HTTP 请求和响应。https 模块与 http 模块类似但支持安全的 HTTPS 协议。path 模块用于处理文件路径包括路径解析、拼接、规范化等。events 模块用于实现事件驱动的编程可以创建和处理事件。stream 模块用于处理流式数据可以读取和写入可流式的数据。util 模块包含一些实用工具函数如继承、类型判断、错误处理等。crypto 模块提供加密和解密功能包括哈希算法、对称加密和非对称加密等。os 模块提供与操作系统相关的功能如获取操作系统信息、处理文件路径等。querystring 模块用于解析和序列化 URL 查询字符串。
2.2、自定义模块每个用户创建的 .js文件都是自定义模块
2.3、第三方模块由第三方开发出来的模块使用前需先下载
3.加载模块
3.1、require
使用 require() 方法可以加载需要的内置模块、自定义模块、第三方模块进行使用
注使用 require() 方法加载其他模块时会执行被加载模块中的代码
加载内置模块
const fs require(fs);加载自定义模块
模块名中的.js可省略相对路径与绝对路径皆可
const custom require(./custom.js);加载第三方模块
const moment require(moment)3.2、exports
在项目中创建hello.js
exports.world (){console.log(Hello World)
}hello.js通过exports将world作为模块的访问接口可以提供给外部加载调用。
const hello require(./hello)
hello.world()Node.js 提供了 exports 和 require 两个对象其中 exports 是模块公开的接口require 用于从外部获取一个模块的接口即所获取模块的 exports 对象。
3.3、module
将整个对象作为访问接口在项目中创建hello.js
const Hello (){let namethis.setName (val){name val}this.sayHello (){console.log(Hello name)}
}module.exports Hellohello.js通过module.exports将Hello对象作为模块的访问接口可以提供给外部加载调用。
const Hello require(./hello)
let hello new Hello()
hello.setName(World)
hello.sayHello()exports返回模块函数而module.exports返回模块本身。
4.模块作用域
模块作用域模块作用域和函数作用域类似在自定义模块中定义的变量、方法只能在当前模块内被访问这种模块级别的访问限制。模块作用域的好处可以防止全局变量污染的问题。
// 模块作用域
const username 张三;
function funcs(){console.log(大家好我叫 username);
};5.模块的加载机制
模块在第一次加载后会被缓存多次去调用 require() 模块的代码只会被执行一次。无论是内置模块、自定义模块、还是第三方模块它们都会优先从缓存中加载提高模块的加载效率。 内置模块的加载机制内置模块的加载优先级最高 自定义模块的加载机制当使用 require() 加载自定义模块时必须以 ./ 或 …/ 开头的路径标识符。如果没有使用 ./ 或 …/ 的路径标识符则 node.js 会把它当作内置模块或第三方模块去加载。 第三方模块的加载机制当传递给 require() 的模块标识符不是一个内置模块也没有以 ./ 或 …/ 开头则 node.js 会从当前的模块的父目录开始尝试从 /node_modules 文件夹中加载第三方模块如果没有找到对应的第三方模块会移动到上一层父目录中进行加载直到文件系统的根目录。