在编写稍微大一点的程序的时候,需要把代码进行模块化。在NodeJS当中,需要把不同的JS拆分成一个个的JS文件,这样的JS文件就是一个个的模块。

模块化的概念和意义

  • 为了让Node的文件可以相互调用,Node提供了一个简单的模块系统
  • 模块是Node应用程序的基本组成部分
  • 文件和模块是一 一对应的。一个JS文件就是一个模块。
  • 这个模块可能是纯粹的JS代码,也有可能是JSON或者编译过的C/C++扩展
  • NodeJS中分为4大类模块 (原生模块和3种文件模块)

    NodeJS的模块加载流程

    划重点:模块分两个区,一个是文件模块缓存区,一个是原生模块缓存区。一个是原生的,一个是第三方的。缓存区的意义是防止模块反复的被加载到内存当中,加快了模块的加载速度。
    **

    node的模块加载方式

  1. 从文件模块缓存中加载
  2. 从原生模块加载
  3. 从文件加载

require方法加载模块

reqiure方法接受一下集中参数的传递

  • http、fs、path等,原生模块。
  • ./mod或../mod 相对路径的自己写的模块或者第三方模块
  • /path/mod 绝对路径自己写的模块或者第三方模块的文件模块
  • mod, 非原生模块的文件模块。

模块化代码实例

自己封装的模块 hello.js

  1. function Hello() {
  2. var name;
  3. this.setName = function (argname) {
  4. name = argname;
  5. }
  6. this.sayHello = function () {
  7. console.log('hello' + name);
  8. }
  9. }
  10. // 对模块导出
  11. module.exports = Hello;

node执行 main.js

  1. // 调用hello模块
  2. const Hello = require('./hello');
  3. hello = new Hello();
  4. hello.setName('yideng');
  5. hello.sayHello();
  6. //输出 helloyideng