Node.js(五)Node对CommonJS规范的使用

  • Node模块

    • Node在实现中并非完全按照CommonJS规范实现,而是对模块规范进行了一定的取舍,同时也增加了少许自身需要的特性
    • Node模块化
      • 在Node中,一个js文件就是一个模块
      • 在Node中,每一个js文件中的js代码都是独立运行在一个函数中,而不是全局作用域,所以一个模块的中的变量和函数在其他模块中无法访问
  • Node模块引用

    • 在node中,通过require()函数来引入外部的模块,require()可以传递一个文件的路径作为参数,node将会自动根据该路径来引入外部模块这里路径,如果使用相对路径,必须以.或…开头
    • 使用require()引入模块以后,该函数会返回一个对象,这个对象代表的是引入的模块
  • Node模块标识

    • 我们使用require()引入外部模块时,使用的就是模块标识,我们可以通过模块标识来找到指定的模块

    • 模块分成两大类

      • 核心模块
        • 由node引擎提供的模块
        • 核心模块的标识就是,模块的名字(eg:http)
      • 文件模块
        • 由用户自己创建的模块
        • 文件模块的标识就是文件的路径(绝对路径,相对路径)相对路径使用.或…开头
      let fs = require("fs");
      
  • Node模块定义

    • 可以通过 exports 来向外部暴露变量和方法

    • 只需要将需要暴露给外部的变量或方法设置为exports的属性即可

      module.exports.add = function (a , b) {
      	return a+b;
      };
      
  • Node模块的全局变量

    • 在node中有一个全局对象 global,它的作用和网页中window类似
    • 在全局中创建的变量都会作为global的属性保存
    • 在全局中创建的函数都会作为global的方法保存
  • Node模块函数化

    • 当node在执行模块中的代码时,它会首先在代码的最顶部,添加如下函数
      function (exports, require, module, __filename, __dirname) {
            TODO...
      }
      
    • 实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进了5个实参
      • exports : 该对象用来将变量或函数暴露到外部
      • require : 函数,用来引入外部的模块
      • module :
        • module代表的是当前模块本身
        • exports就是module的属性
        • 既可以使用 exports 导出,也可以使用module.exports导出
      • __filename : 当前模块的完整路径
      • __dirname : 当前模块所在文件夹的完整路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值