一、CommonJs規範的出發點:JS沒有模塊系統、標準庫較少、缺少包管理工具;爲了讓JS能夠在任何地方運行,以達到Java、C#、PHP這些後臺語言具有開發大型應用的能力;node
二、在CommonJs規範中:緩存
一個文件就是一個模塊,擁有單獨的做用域;函數
普通方式定義的變量、函數、對象都屬於該模塊內;工具
經過require來加載模塊;post
經過exports和modul.exports來暴露模塊中的內容;ui
三、全部代碼都運行在模塊做用域,不會污染全局做用域;模塊能夠屢次加載,但只會在第一次加載的時候運行一次,而後運行結果就被緩存了,之後再加載,就直接讀取緩存結果;模塊的加載順序,按照代碼的出現順序是同步加載的;對象
四、__dirname表明當前模塊文件所在的文件夾路徑,__filename表明當前模塊文件所在的文件夾路徑+文件名;blog
五、require(同步加載)基本功能:讀取並執行一個JS文件,而後返回該模塊的exports對象,若是沒有發現指定模塊會報錯;作用域
六、模塊內的exports:爲了方便,node爲每一個模塊提供一個exports變量,其指向module.exports,至關於在模塊頭部加了這句話:var exports = module.exports,在對外輸出時,能夠給exports對象添加方法,PS:不能直接賦值(由於這樣就切斷了exports和module.exports的聯繫);開發