node.js 模块化 知识点2

152 阅读1分钟

1.模块化是是什么?

  • 解决一个复杂的问题,将系统划分成若干模块的过程。 模块是可组合、分解、更换的。
  • 优点:复用性 可维护性 按需加载

2.模块的分类有哪些?

  • 内置模块 (fs http path)
  • 自定义模块 (用户创建的单个js文件)
  • 第三方模块 (第三方开发的) 微信图片_20220310213650.png

3.npm与包?

  • www.npmjs.com/ 知名网站 包分为: 项目包:开发依赖包 核心依赖包

全局包: npm install 包名 -g npm uninstall 包名 -g

  • 写个时间处理包
  • 包的三个文件 package.json
{
    "name": "first-tool",
    "version": "1.0.0",
    "main": "index.js",
    "description": "提供了时间格式化等相关功能",
    "keywords": [
        "first",
        "dateFormate"
    ],
    "license": "ISC"
}

index.js

//格式化时间方法
function dateFormat(dateStr){
    const dt=new Date(dateStr)

    const y=dt.getFullYear() 
    const m=padZero(dt.getMonth()+1)
    const d=padZero(dt.getDate())

    const hh=padZero(dt.getHours())
    const mm=padZero(dt.getMinutes())
    const ss=padZero(dt.getSeconds())

    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
//补全0的方法
function padZero(n){
   return n>9?n:'0'+n 
}
//对外暴露的方法
module.exports={
    dateFormat
}

README.md

// 页面中使用
const first=require('./first-tool') 入口文件是index.js 可以省
const tody=first.dateFormat(new Date())
console.log(tody)

微信图片_20220310221517.png

  • 解决下载包慢的问题 使用淘宝镜像 微信图片_20220310222415.png

4.模块化加载的机制是?

  • 优先从缓存中加载 模块在第一次加载之后被缓存

5.模块作用域是什么?

  • 就是在单个模块中才能访问,其他模块无法访问。
  • 作用:防止全局变量污染

6.对外暴露一个对象

  • module.exports={}
  • exports
  • exports与module.exports指向同一个对象

7.exports与module.exports使用误区

微信图片_20220310215458.png

8.是遵循CommonJs的模块化规范的