針對Node.js來談談 require、module以及exports 模組設定。這些概念允許開發者將大型程序分解成小的、可管理的、可重用的部分,稱為模塊。
下面將逐一介紹這些概念,以及它們如何與 JavaScript 關聯。
An Essential Guide to Node.js Modules (javascripttutorial.net)
1. Module(模組)
在 Node.js 中,每一個文件都被視為一個獨立的模組系統。
當你創建一個 JavaScript 檔案,你實際上創建了一個模塊。這個模塊可以包含變數、函數、類等,並且可以選擇性地對外暴露或封裝其功能。
2. require 函數
require
是一個用來加載模塊的函數。當你需要在一個模塊中使用另一個模塊提供的功能時,你可以使用 require
函數。這個函數接受一個模塊的路徑作為參數,並返回該模塊對外暴露的對象。
我們有一個名為 app.js
的文件,提供了一個加法函數:我們有一個名為 data.js
的文件,提供了一個物件資料:
var content =require('./data');
var a=3;
console.log(a);
console.log(content);
3. exports 和 module.exports
exports
和module.exports
,用於將模塊內的函數和對象暴露給使用該模塊的文件。
module.exports
是暴露模塊的主要對象。當你將一個模塊導入另一個文件時,你實際上獲得的是module.exports
的內容。exports
是module.exports
的一個參考,方便將多個對象或函數暴露給外部。
通常,如果你想從一個模塊導出單一對象(如函數、類等),你可以直接使用 module.exports
。如果你想導出多個對象或函數,你可以使用 exports
。
使用 module.exports
導出物件內的資料:
var data =2;
module.exports = {
content: data,
title:'title'
};
4. 利用Terminal Prompt 出執行檔案 app.js
5. 模組設定_常用方法
'/單獨變數可使用/'
exports.data =2;
exports.bark = function(){
return 'bark!!';
}
'/包裹大物件使用/'
module.exports ={
data:1
}
一般來說,我們要包裹底層商業邏輯,用module.exports 局多!