誕生背景
JS沒有模塊系統、標準庫較少、缺少包管理工具;
前端端沒有模塊化編程還能夠,由於前端邏輯沒那麼複雜,能夠工做下去,在服務器端邏輯性那麼強必需要有模塊
爲了讓JS能夠在任何地方運行,以達到Java、C#、PHP這些後臺語言具有開發大型應用的能力,因而CommomJs規範就孕育而生了
前端
核心規範
一個文件就是一個模塊,擁有單獨的做用域
普通方式定義的變量、函數、對象都屬於該模塊內
經過require同步來加載模塊,即讀取並執行一個JS文件,而後返回該模塊的exports對象,若是沒有發現指定模塊會報錯
經過exports和modul.exports來暴露模塊中的內容java
實例演示
node
app.js編程
/** *模塊: *功能:入口 */ var tools=require('./tools');var num1=2; var num2=3; tools.add(num1,num2);
tools.js
注意嘎,這裏雖然沒有顯示define關鍵字聲明模塊,但實際上是有的,只不過是node隱式的給包裝加上了,你看不到而已。node給每一個文件都加上了,因此node規定一個文件就是一個模塊,如下都是這樣服務器
var log=require('./log'); module.exports = { add:function (x,y) { var sum= x+y; log.info('tools>add執行結果爲:'+sum); return sum; } }
log.jsapp
module.exports = { info:function (str) { console.log(str) }, err:function (str) { console.error(str) } }
做者總結
一個文件即一個模塊,經過module.export來公開模塊內的成員,別的地方經過require來導入該模塊。
一個模塊就至關於java的一個packge模塊化