1.概述
Node应用由模块组成,采用CommonJS模块组成。
每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量,函数,类,都是私有的,对其他文件不可见。
CommonJS模块的特点如下:
1).所有代码都运行在模块作用域,不会污染全局作用域
2).模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就直接读取缓存结果。想要模块再次运行,必须清除缓存。
3).模块加载的顺序,按照其在代码中出现的顺序。
2.AMD规范与CommonJS规范的兼容性
CommonJS规范加载模块是同步的,只有加载完成,才能执行后面的操作。AMD规范是非同步加载模块,允许指定 回调函数。由于Node.js主要用于服务器编程,模块文件都已经在本地硬盘,所以加载起来比较快,不用考虑非同步加载的方式,所以CommonJS规范比较适合。但是,如果是浏览器环境,要从服务器端加载模块,就必须采用非同步模式,因此浏览器端一般采用AMD规范。