NodeJS学习笔记—1.CommonJS规范
由于现在web开发,越来越重视代码的复用和抽象的封装,为了解决代码的组织结构、管理、复用和部署等问题,现在普遍采用的机制是模块机制(module)。CommonJS约定桌面应用程序和服务器应用程序需要的API,如操作系统接口、数据、文件系统等,其最主要的约定就是module机制。其跟操作系统、js引擎都没有关系,只要兼容CommonJS的平台就能运行。
CommonJS是服务器端模块的规范,Nodejs采用了这个规范,所以有必要学习下。
根据CommonJS规范,一个单独的文件就是一个模块,加载模块用require方法,该方法读取模块并返回文件内的exports对象,如下:
1 //A.js 2 exports.message="hello"; 3 exports.say=function(){ 4 console.log("say hi"); 5 }
使用require加载A.js
1 //B.js 2 var b=require(./A); 3 b.say();
require默认读取js文件,所以可以省略.js后缀。js文件名前可以是相对路径也可以是绝对路径,相对路径是相对于当前require文件的。若省略了路径,node.js默认会加载一个核心模块,或者安装在node_modules中的模块。若加载的是一个目录,默认是去读package.json文件,加载该文件main属性提到的模块,否则寻找该目录下的index.js。
复杂点的C.js
function C(){ this.say=function(){ }; this.hello=function(){ } } exports.C=C;
调用C模块:
var d=require(./C).C; var d1=new d(); d1.say();