• Node.js学习笔记_No.03


    模块化

    概念:把一个大文件拆成独立并互相依赖的多个小模块
    把代码进行模块化拆分的好处:
    ①提高代码地复用性、可维护性;
    ②可以按需加载;


    分类

    内置模块:Node.js官方提供(eg:fs、path、http)

    const fs = require('fs')
    
    • 1
    • 自定义模块:用户创建的每个.js文件都是自定义模块
    const custom = require('./custom.js')//引用路径(后缀名.js可省)
    
    • 1
    • 第三方模块(包):第三方开发,使用时需要先下载
    const moment = require('moment')
    
    • 1

    模块作用域

    好处:防止全局成员(变量、函数)污染问题;

    向外共享模块作用域

    module对象:每个.js自定义模块中都有一个module对象,储存和当前模块有关的信息(可打印查看)
    module.exports对象:将模块内的成员共享出去,供外界使用;
    exports默认和module.exports指向同一个(空)对象(二者不能完全划等号,只是在开始指向相同)
    require()方法导入自定义模块时,实际上导入的是module.exports所指的对象;
    导入的结果永远以module.exports最后指向的新对象为准

    //在一个自定义模块中,默认情况下
    module.exports = {}//为空
    
    • 1
    • 2
    //可挂载属性和方法,向外共享成员
    const age = 10
    exports.age = age//用该方法暴露可以让外界访问到
    exports.username = 'zs'
    exports.sayHello = fuction() {
    	console.log('Lulaoye')
    }
    
    2. //让module.exports 指向一个全新的对象
    module.exports = {
    	nickname: '凯亚',
    	sayHi {
    		console.log('Hi!')
    	}
    }
    /*
    module.exports ={...}与module.exports = ...  代表意义不一样
    第一个新建了新对象,第二个是在原本指向的对象里面挂载属性
    */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 建议不要在同一个模块中同时使用exportsmodule.exports

    CommonJS模块化规范

    • 规定了模块的特性和各模块之间如何相互依赖
    规定

    ①每个模块内部,module变量代表当前模块;
    ②module变量是一个对象,它的exports属性(即module.exports)是对外的接口
    ③加载某个模块,其实是加载该模块的module.exports属性。require()方法用于加载模块


    npm与包

    • Node.js中的第三方模块又叫包
    • 包是基于内置模块封装出来的,提供了更高级的、更方便的API,极大的提高了开发效率
    • 下载包的地方:
      npm, Inc:国外一IT公司,旗下网站:https://www.npmjs.com/搜索所需包
      http://reqistry.npmjs.org/下载所需包
    • 如何下载包:
      还是上述公司,提供的包管理工具:Node Package Manager(npm包管理工具),该工具随Node.js的安装包一起安装到了用户电脑上
  • 相关阅读:
    全真模拟题!PMP提分必练
    CompletableFuture用法详解
    数据结构树与二叉树的实现
    A-Level经济真题每期一练(20)
    集合框架----源码解读LikedeHashSet篇
    免费AI软件开发工具测评:iFlyCode VS CodeFlying
    笔试题积累
    如何获取跑腿App源码并定制化你的业务
    Python 推导式和递归
    大小屏适配
  • 原文地址:https://blog.csdn.net/m0_55825393/article/details/125783484