CommonJS 就是爲 JS 的表現來制定規範,由於 JS 沒有模塊系統,標準庫較少,缺少包管理工具,因此 CommonJS 應運而生,它但願 JS 能夠在任何地方運行,而不僅是在瀏覽器中,從而達到 Java、C#、PHP 這些後端語言具有開發大型應用的能力。node
CommonJS 就是模塊化的標準,Node.js 就是 CommonJS(模塊化)的實現。後端
在 Node 中,模塊分爲兩類:瀏覽器
一是 Node 提供的模塊,稱爲核心模塊,例如 http 模塊、url 模塊、fs 模塊。bash
二是用戶編寫的模塊,稱爲文件模塊,好比接下來要新建一個 js 文件,並在裏邊添加的工具模塊,經過 exports 或者 module.exports 將模塊導出,並經過 require 引入這些模塊。服務器
首先新建一個 js 文件,在裏邊添加工具模塊,並暴露模塊。模塊化
暴露模塊的方式有兩種:工具
module.exports 是真正的接口,exports 是一個輔助工具。ui
若是 module.exports 爲空,那麼全部的 exports 收集到的屬性和方法,都賦值給了 module.exports,若是 module.exports 具備任何屬性和方法,則 exports 會被忽略。url
let str = "learning CommonJS";
exports.str = str; // {str: "learning CommonJS"}
複製代碼
暴露出 tools 工具模塊,經過 require 導入使用(與 url 模塊和 http 模塊的引入方式相同)。spa
在下面代碼中咱們是用 module.exports 方式來暴露模塊。
tools.js
const tools = {
length: (...numbers) => {
return numbers.length;
},
sum: (...numbers) => {
let sum = 0;
for (let number in numbers) {
sum += numbers[number]
};
return sum;
}
};
module.exports = tools;
複製代碼
接下來再新建一個 js 文件,並引入剛編寫的模塊。
CommonJS.js
const tool = require('./tools.js')
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const server = http.createServer((request, response) => {
if (request.url != '/favicon.ico') {
console.log(tool.length(1,2,3));
console.log(tool.sum(1,2,3));
};
response.statusCode = 200;
response.setHeader('Content-Type', 'text/plain;charset=utf-8');
response.end('CommonJS,調取了 tool.js 工具模塊中的 length() 和 sum() 兩個方法。');
});
server.listen(port, hostname, () => {
console.log(`服務器運行在 http://${hostname}:${port}`);
});
複製代碼
執行 node CommonJS.js,訪問:127.0.0.1:3000/
3
6
複製代碼