由於現在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();
更多專業前端知識,請上【猿2048】www.mk2048.com