node模块化

发布于:2023-01-05 ⋅ 阅读:(370) ⋅ 点赞:(0)

目录

1、模块化的基本概念

        1.1 什么是模块化

        1.2 将代码进行模块化拆分的好处

        1.3 模块化规范

2、Node.js中的模块化

        2.1 Node.js中模块的分类

        2.2 加载模块

        2.3 使用require注意点

        2.4 node.js中的模块作用域

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

 3、exports和module.exports的使用误区

         4、Node.js中的模块规范化

1、模块化的基本概念

        1.1 什么是模块化

           编程领域的模块化就是遵守固定的规则,把一个大文件拆成独立并且相互依赖的多个小模块

        1.2 将代码进行模块化拆分的好处

        (1)提高代码的复用性

        (2)提高代码的可维护性

        (3)实现按需加载

        1.3 模块化规范

              对代码进行模块化拆分与组合时需要遵守的规则

2、Node.js中的模块化

        2.1 Node.js中模块的分类

          根据来源不同分为三大类

        (1)内置模块(nodejs官方提供 fs path http url等)

        (2)自定义模块(用户自己创建的每个.js文件)

        (3)第三方模块(由第三方创建出来的,使用前需要下载)

        2.2 加载模块

              第三方模块和内置模块直接写模块名,自定义模块需要加路径

              注意:使用require()加载其他模块,会执行被加载模块的代码

    /* 内置模块 */
    let http = require('http')
    // let fs = require('fs')//文件系统模块
    let path = require('path')//路径相关操作
    /* 第三方模块 */
    const mysql = require("mysql");
    /* 用户自定义模块 */
    const static1=require('./index')

        2.3 使用require注意点

               可以省略.js后缀

        2.4 node.js中的模块作用域

                2.4.1 什么是模块作用域

                        和函数作用域类似,只有在模块内才能被访问,这种模块级别的访问限制,就是模块作用域

                2.4.2 模块作用域的好处

                        防止全局变量污染问题

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

               2.5.1 module对象(控制台打印的module对象)存储了当前模块的有关信息

Module {
  id: '.',
  path: 'E:\\goodProgram\\day0823\\js',
  exports: { name: 'lisa', age: 12, say: [Function: say] },
  parent: null,
  filename: 'E:\\goodProgram\\day0823\\js\\person.js',
  loaded: false,
  children: [],
  paths: [
    'E:\\goodProgram\\day0823\\js\\node_modules',
    'E:\\goodProgram\\day0823\\node_modules',
    'E:\\goodProgram\\node_modules',
    'E:\\node_modules'
  ]
}

                2.5.2 module.exports对象

                    1、 将模块内的成员共享出去,供外界使用,默认情况下,module.exports={}

                    2、外界使用require()方法导入自定义模块时,得到的就是module.exports所指的对象 

module.exports={
    name:'lisa',
    age:12,
    say:function(){
        console.log(this.name+'在自我介绍');
    }
}

                 2.5.3 共享成员的注意点

                     使用require()方法导入模块时,导入的结果永远以module.exports指向的对象为准

                2.5.4 exports对象

                      是module.exports的简写 指向同一个对象 

3、exports和module.exports的使用误区

         require导入的永远都是module.exports指向的对象

         不建议同一模块中同时使用exports和module.exports     

 

 4、Node.js中的模块规范化

        Node.js遵循CommonJS模块化规范,CommonJS规定了模块的特性和各模块之间如何相互依赖

        (1)每个模块内部、module变量代表当前模块

        (2)module变量是一个对象,他的exports属性(module.exports)是对外接口

        (3)加载某个模块就是加载该模块的module.exports属性 ,require用于加载对应的模块


网站公告

今日签到

点亮在社区的每一天
去签到