因爲如今web開發,愈來愈重視代碼的複用和抽象的封裝,爲了解決代碼的組織結構、管理、複用和部署等問題,如今廣泛採用的機制是模塊機制(module)。CommonJS約定桌面應用程序和服務器應用程序須要的API,如操做系統接口、數據、文件系統等,其最主要的約定就是module機制。其跟操做系統、js引擎都沒有關係,只要兼容CommonJS的平臺就能運行。node
CommonJS是服務器端模塊的規範,Nodejs採用了這個規範,因此有必要學習下。web
根據CommonJS規範,一個單獨的文件就是一個模塊,加載模塊用require方法,該方法讀取模塊並返回文件內的exports對象,以下:json
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.jsui
function C(){ this.say=function(){ }; this.hello=function(){ } } exports.C=C;
調用C模塊:this
var d=require(./C).C; var d1=new d(); d1.say();