• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Node.js——模块化(一)

武飞扬头像
Bella..
帮助1

1. 模块化的基本概念

1.1 什么是模块化

学新通

 1. 编程领域中的模块化

学新通

 1.2 模块化规范

学新通2. Node.js 中的模块化

2.1 Node.js 中模块的分类

学新通

2.2 加载模块

学新通

加载自定义模块给相对路径 ./是平级(同一文件夹下调用)

  1.  
    //这是07.test.js代码
  2.  
    // 注意:在使用 require 加载用户自定义模块期间,
  3.  
    // 可以省略 .js 的后缀名
  4.  
    const m1 = require('./06.m1.js')
  5.  
    console.log(m1)
  6.  
     
  7.  
     
  8.  
    //这是06.m1.js代码
  9.  
    // 当前这个文件,就是一个用户自定义模块
  10.  
    console.log('加载了06这个用户自定义模块')

2.3 Node.js 中的模块作用域

1. 什么是模块作用域

学新通

‘01中定义的变量方法(成员),就算在02中导入了01模块,里面的方法变量也拿不到

成员默认只能在内部被访问:模块级别的访问限制叫模块作用域

2. 模块作用域的好处学新通

2.4 向外共享模块作用域中的成员

1. module 对象

学新通

 通过exports共享成员,让模块内的成员可以被外界访问到

2. module.exports 对象

学新通

module.exports默认指向为空对象 

3. 共享成员时的注意点

最后又定义了新对象,module.exports指向新对象

学新通

  1.  
    //11.自定义模块.js
  2.  
    // 在一个自定义模块中,默认情况下,
  3.  
    // module.exports = {}空对象
  4.  
     
  5.  
    const age = 20
  6.  
     
  7.  
    // 向 module.exports 对象上挂载 username 属性
  8.  
    module.exports.username = 'zs'
  9.  
    // 向 module.exports 对象上挂载 sayHello 方法
  10.  
    module.exports.sayHello = function() {
  11.  
    console.log('Hello!')
  12.  
    }
  13.  
    //把age挂载出去了
  14.  
    module.exports.age = age
  15.  
     
  16.  
    // 让 module.exports 指向一个全新的对象
  17.  
    module.exports = {
  18.  
    nickname: '小黑',
  19.  
    sayHi() {
  20.  
    console.log('Hi!')
  21.  
    }
  22.  
    }
  23.  
     
  24.  
    //12.test.js
  25.  
    // 在外界使用 require 导入一个自定义模块的时候,得到的成员,
  26.  
    // 就是 那个模块中,通过 module.exports 指向的那个对象,
  27.  
    //默认为空对象
  28.  
    const m = require('./11.自定义模块')
  29.  
     
  30.  
    console.log(m)
  31.  
     
学新通

4. exports 对象

学新通

  1.  
    // console.log(exports)
  2.  
    // console.log(module.exports)
  3.  
     
  4.  
    // console.log(exports === module.exports)
  5.  
    //true 两个指向同一个对象
  6.  
    const username = 'zs'
  7.  
     
  8.  
    module.exports.username = username
  9.  
    exports.age = 20
  10.  
    exports.sayHello = function() {
  11.  
    console.log('大家好!')
  12.  
    }
  13.  
     
  14.  
    // 最终,向外共享的结果,永远都是 module.exports 所指向的对象

4. exports 和 module.exports 的使用误区

学新通

2.5 Node.js 中的模块化规范

学新通

3. npm与包

3.1 包

1. 什么是包

学新通

2. 包的来源学新通

3. 为什么需要包学新通

4. 从哪里下载包学新通

5. 如何下载包学新通

3.2 npm 初体验

1. 格式化时间的传统做法

学新通

  1.  
    //15.dateFormat.js
  2.  
    // 1. 定义格式化时间的方法
  3.  
    function dateFormat(dtStr) {
  4.  
    const dt = new Date(dtStr)
  5.  
     
  6.  
    const y = dt.getFullYear()
  7.  
    //月份是0-11,要加个1
  8.  
    const m = padZero(dt.getMonth() 1)
  9.  
    const d = padZero(dt.getDate())
  10.  
     
  11.  
    const hh = padZero(dt.getHours())
  12.  
    const mm = padZero(dt.getMinutes())
  13.  
    const ss = padZero(dt.getSeconds())
  14.  
     
  15.  
    return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
  16.  
    }
  17.  
     
  18.  
    // 定义补零的函数
  19.  
    function padZero(n) {
  20.  
    return n > 9 ? n : '0' n
  21.  
    }
  22.  
    //向外暴露一个对象
  23.  
    module.exports = {
  24.  
    dateFormat
  25.  
    }
  26.  
     
  27.  
    //16.test.js
  28.  
    // 导入自定义的格式化时间的模块
  29.  
    const TIME = require('./15.dateFormat')
  30.  
     
  31.  
    // 调用方法,进行时间的格式化
  32.  
    //创建时间的对象
  33.  
    const dt = new Date()
  34.  
    // console.log(dt)
  35.  
    const newDT = TIME.dateFormat(dt)
  36.  
    console.log(newDT)
学新通

2. 格式化时间的高级做法

学新通

3. 在项目中安装包的命令

访问npmjs.com网页,查询用法

学新通

  1.  
    // 1. 导入需要的包,包名称必须写成字符串
  2.  
    // 注意:导入的名称,就是装包时候的名称
  3.  
    const moment = require('moment')
  4.  
     
  5.  
    const dt = moment().format('YYYY-MM-DD HH:mm:ss')
  6.  
    console.log(dt)

4. 初次装包后多了哪些文件

学新通

5. 安装指定版本的包

学新通

6. 包的语义化版本规范

学新通

3.3 包管理配置文件

学新通

1. 多人协作的问题

只需要上传源代码就行

学新通

2. 如何记录项目中安装了哪些包

学新通

3. 快速创建 package.json

新建项目的文件夹以后第一件事就是执行这行代码,且项目开发期间只需要执行一次

学新通

4. dependencies 节点

学新通

5. 一次性安装所有的包

学新通

解决方案:还有package.json

学新通

6. 卸载包学新通

7. devDependencies 节点学新通

3.4 解决下包速度慢的问题

1. 为什么下包速度慢学新通

2. 淘宝 NPM 镜像服务器学新通

3. 切换 npm 的下包镜像源学新通

4. nrm

学新通

3.5 包的分类

学新通

1. 项目包

学新通

2. 全局包

学新通

3. i5ting_toc

学新通

3.6 规范的包结构

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhggafcf
系列文章
更多 icon
同类精品
更多 icon
继续加载