1、 什麼是 CommonJs?javascript
JavaScript 是一個強大面向對象語言,它有不少快速高效的解釋器。 然而, JavaScript
標準定義的 API 是爲了構建基於瀏覽器的應用程序。並無制定一個用於更普遍的應用程序
的標準庫。 CommonJS 規範的提出,主要是爲了彌補當前 JavaScript 沒有標準的缺陷。 它的終
極目標就是: 提供一個相似 Python, Ruby 和 Java 語言的標準庫,而不僅是停留在小腳本程序
的階段。用 CommonJS API 編寫出的應用, 不只能夠利用 JavaScript 開發客戶端應用, 並且
還能夠編寫如下應用。java
•服務器端 JavaScript 應用程序。( nodejs)
•命令行工具。
•桌面圖形界面應用程序。
CommonJS 就是模塊化的標準, nodejs 就是 CommonJS( 模塊化) 的實現。
node
2、 Nodejs 中的模塊化
Node 應用由模塊組成,採用 CommonJS 模塊規範。npm
2.1 在 Node 中,模塊分爲兩類:
一類是 Node 提供的模塊,稱爲核心模塊;另外一類是用戶編寫的模塊,稱爲文件模塊。json
• 核心模塊部分在 Node 源代碼的編譯過程當中,編譯進了二進制執行文件。在 Node 進
程啓動時,部分核心模塊就被直接加載進內存中,因此這部分核心模塊引入時,文件定位和
編譯執行這兩個步驟能夠省略掉,而且在路徑分析中優先判斷,因此它的加載速度是最快的。
如: HTTP 模塊 、 URL 模塊、 Fs 模塊都是 nodejs 內置的核心模塊,能夠直接引入使用。瀏覽器
• 文件模塊則是在運行時動態加載,須要完整的路徑分析、文件定位、編譯執行過程、
速度相比核心模塊稍微慢一些,可是用的很是多。 這些模塊須要咱們本身定義。 接下來我
們看一下 nodejs 中的自定義模塊。服務器
2.2 CommonJS( Nodejs) 中自定義模塊的規定:模塊化
1.咱們能夠把公共的功能抽離成爲一個單獨的 js 文件做爲一個模塊, 默認狀況下面這
個模塊裏面的方法或者屬性, 外面是無法訪問的。若是要讓外部能夠訪問模塊裏面的方法或
者屬性, 就必須在模塊裏面經過 exports 或者 module.exports 暴露屬性或者方法。
2. 在須要使用這些模塊的文件中, 經過 require 的方式引入這個模塊。這個時候就能夠
使用模塊裏面暴露的屬性和方法。 工具
2.3 定義使用模塊:
ui
// 定義一個 tools.js 的模塊 //模塊定義 var tools = { sayHello: function() { return 'hello NodeJS'; }, add: function(x, y) { return x + y; } }; // 模塊接口的暴露 // module.exports = tools; exports.sayHello = tools.sayHello; exports.add = tools.add;
var http = require('http'); // 引入自定義的 tools.js 模塊 var tools= require('./tools'); tools.sayHello(); //使用模塊
3、 npm init 生成 package.json
npm init --yes