了解
node应用由模块组成,采用的commonjs模块规范。每一个文件就是一个模块,拥有自己独立的作用域,变量,以及方法等,对其他的模块都不可见。CommonJS规范规定,每个模块内部,module变量代表当前模块。这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。require方法用于加载模块。
CommonJS模块的特点
所有的代码都运行在模块作用与,不会污染全局作用域
模块可以多次加载,但是只会在第一次加载时运行一次,然后运行结果就被缓存了,以后再加载,就可以直接读取缓存结果,要是想让模块再次运行,必须清除缓存
为什么指定CommonJS规范
在后端,javascript的规范远远落后并且有很多缺陷,这使的难以使用javascript开发大型应用
没有模块系统
标准库较少
没有标准接口
缺少包管理系统
列表内容
CommonJS规范的提出主要是为了弥补javascript没有标准的缺陷
使用CommonJS模块规范的好处
CommonJS模块规范很好地解决变量污染问题,每个模块具有独立空间,互不干扰,命名空间等方案与之相比相形见绌。
CommonJS规范定义模块十分简单,接口十分简洁。
CommonJS模块规范支持引入和导出功能,这样可以顺畅地连接各个模块,实现彼此间的依赖关系