模块加载及第三方包

1. Node.js模块化开发

1.1 JavaScript开发弊端

JavaScript在使用时存在两大问题,文件依赖和命名冲突。

image.png

1.2 软件中的模块化开发

一个功能就是一个模块,多个模块可以组成完整应用,抽离一个模块不会影响其他功能的运行。

image.png

1.3 Node.js中模块化开发规范

  • Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
  • 模块内部可以使用exports对象进行成员导出, 使用require方法导入其他模块。

image.png

1.5 模块成员导出

  // a.js
  // 在模块内部定义变量
 let version = 1.0;
 // 在模块内部定义方法
 const sayHi = name => `您好, ${name}`;
 // 向模块外部导出数据 
 exports.version = version;
 exports.sayHi = sayHi;

1.6 模块成员的导入

导入模块时后缀可以省略

  // b.js
  // 在b.js模块中导入模块a
 let a = require('./b.js');
  // 输出b模块中的version变量
 console.log(a.version);
  // 调用b模块中的sayHi方法 并输出其返回值
 console.log(a.sayHi('')); 

1.7 模块成员导出的另一种方式

module.exports.version = version;
module.exports.sayHi = sayHi;

exports是module.exports的别名(地址引用关系),导出对象最终以module.exports为准

1.8 模块导出两种方式的联系与区别

exports.version = version;
module.exports.version = version;
module.exports = { 
    name: 'zhangsan',
}

image.png


Emrof
31 声望6 粉丝