网站建设提议,网站建设怎么在图片上加字,百度如何建设自己的网站,嵌入式和网站开发1.什么是模块化 模块化是指解决一个复杂问题时#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说#xff0c;模块是可组合、分解和更换的单元。 编程领域中的模块化 编程领域中的模块化#xff0c;就是遵守固定的规则#xff0c;把一个大文件拆成独立并…1.什么是模块化 模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说模块是可组合、分解和更换的单元。 编程领域中的模块化 编程领域中的模块化就是遵守固定的规则把一个大文件拆成独立并互相依赖的多个小模块。 把代码进行模块化拆分的好处: 1️⃣提高了代码的复用性 2️⃣提高了代码的可维护性 3️⃣可以实现按需加载 模块化规范 模块化规范就是对代码进行模块化的拆分与组合时需要遵循的那些规则 例如 使用什么样的语法格式来引用模块 在模块中使用什么样的语法格式向外暴露成员 2.node.js中模块的分类 Node.js 中根据模块来源的不同将模块分为了3 大类分别是: 内置模块(内置模块是由 Node.js 官方提供的例如 fs、path、http 等) 自定义模块(用户创建的每个.js 文件都是自定义模块) 第三方模块(由第三方开发出来的模块,并非官方提供的内置模块,也不是用户创建的白定义模块使用前需要先下载) 加载模块
//加载内置fs模块
const m1 require(fs)
//加载用户的自定义模块
const custom require(./custom.js)
//加载第三方模块
const moment require(moment)注意使用require()方法加载其他模块时会执行被加载模块中的代码 使用require()方法加载用户自定义模块期间可以省略.js的后缀名 node.js中的模块作用域 什么是模块作用域 和函数作用域类似在自定义模块中定义的变量、方法等成员只能在当前模块内被访问这种模块级别的访问限制叫做模块作用域。 模块作用域的好处 防止了全局变量污染的问题 模块内定义的内容无法被外界访问 向外共享模块作用域中的成员 module对象 在每个.js自定义模块中都有一个module对象他里面存储了和当前模块有关的信息 module.exports对象 在自定义模块中可以使用module.exports对象将模块内的成员共享出去供外界使用。 外界用require()方法导入自定义模块时得到的就是 module.exports所指向的对象 注意使用require()方法导入模块时导入的结果永远以module.exports指向的对象为准 // 在一个自定义模块中默认情况下 module.exports {}
const age 20
// 向 module.exports 对象上挂载 username 属性
module.exports.username zs
// 向 module.exports 对象上挂载 sayHello 方法
module.exports.sayHello function() {console.log(Hello!)
}
module.exports.age age// 让 module.exports 指向一个全新的对象
module.exports {nickname: 小黑,sayHi() {console.log(Hi!)}
} exports对象 由于 module.exports 单词写起来比较复杂为了简化向外共享成员的代码Node 提供了exports 对象。默认情况下exports 和 module.exports 指向同一个对象。最终共享的结果还是以module.exports 指向的对象为准。 // console.log(exports)
// console.log(module.exports)
// console.log(exports module.exports)const username zs
module.exports.username username
exports.age 20
exports.sayHello function() {console.log(大家好)
}
// 最终向外共享的结果永远都是 module.exports 所指向的对象exports和module.exports的使用误区 注意为了防止混乱建议不要在同一个模块内同时使用exports和module.exports 3.node.js中的模块化规范 Node.js 遵循了 CommonJS 模块化规范,CommonJS 规定了模块的特性和各模块之间如何相互依赖 CommonJS规定: 每个模块内部module 变量代表当前模块 module 变量是一个对象,它的exports 属性(即 module.exports)是对外的接口 加载某个模块其实是加载该模块的 module.exports 属性。require0 方法用于加载模块