第3天認真學習 Node.js - require、module.exports 模組設計教學

更新於 發佈於 閱讀時間約 3 分鐘

require、module exports模組設計

假設今天專案上有兩個JS檔案(app.js、data.js為B模組),要在 app.js 載入B模組下要如何操作?

Step1. 在 app.js 取得 B模組
當我們在 app.js 裡直接使用 data 時,如果還沒有載入B模組,Node.js 會跳出錯誤訊息:
Uncaught ReferenceError ReferenceError:datais not defined

因此,想讓 app.js 使用B模組提供的內容,就需要依照Node.js的模組化規則,使用require() 將B模組載入。

var data = require('./data'); //載入模組
data.js成功載入B模組

data.js成功載入B模組

Step2. B模組中匯出功能
此時 app.js 已經能「取得」B模組,但B模組內容尚未對外提供。所以使用module.exports語法 將變數或函式匯出。

// data.js
var message = '我是個訊息!!';

module.exports = message;
data.js 匯出,讓app.js取得訊息

data.js 匯出,讓app.js取得訊息

進階使用

物件匯出,且物件中有變數函式

app.js

var data = require('./data')
var a = 1;

console.log(a);
console.log(data);
console.log(data.msg);
console.log(data.say());

data.js

var message = "我是個訊息!!";
module.exports = {
msg: message,
title: "title",
say: function(){ return 'Say~'; }
};
進階使用物件傳送(資料有變數與函式)

進階使用物件傳送(資料有變數與函式)

exports 模組設計

exports 是一種語法糖。它本質是 module.exports 的簡寫。

exports語法糖

exports語法糖

以下為exports與module.exports比較:

//data.js 
exports.message = "我是個訊息!!"
exports.say = function(){ return 'Say~'; }

module.exports = {
message: '我是個訊息!!',
say:function(){ return 'Say'; }
};

注意事項

  • 不能混用
  • 如果同時使用, module.exports 會覆蓋 exports
  • 若要寫入多個屬性 → 用exports.xxx = … 就好
  • 想直接輸出一整個物件→ 用module.exports = { … }


留言
avatar-img
留言分享你的想法!
avatar-img
邁向躺平的工程師 Leo
0會員
6內容數
天生宅習慣的我,與外面繁忙的工作環境格格不入,因此選擇了能在辦公室內進行的軟體工程師職業。雖然室內的空間不如外面那麼廣闊,但在舒適的環境中,我可以心無旁鶩地靜下心來,專注於研發與思考。這條轉職路線,正是天生為我開好的選擇,成為了我日常的 RD 養成之旅。
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
在 TypeScript 中,套件是模組化代碼的集合,可以提高代碼的可重用性和可維護性。常見的套件包括各種庫和框架,如 lodash、express 等。以下是有關引用套件、自定義套件和常見套件的詳細介紹。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節旨在介紹TypeScript的基本語法,包括一般結構、程式進入點、註解以及變數的定義和賦值。這些知識將幫助讀者瞭解TypeScript的基本架構,並且可以開始使用TypeScript進行開發。
Thumbnail
本章節旨在介紹TypeScript的基本語法,包括一般結構、程式進入點、註解以及變數的定義和賦值。這些知識將幫助讀者瞭解TypeScript的基本架構,並且可以開始使用TypeScript進行開發。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
套件(Package)是將程式或程式庫進行組織、分發和共享的一種方式。在軟體開發中,套件通常包含了相關的程式碼、資源文件和元數據,並提供了統一的名稱空間和版本管理。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
Express 是一個流行的 web 框架,使用 JavsScript 實現,執行在 node 環境上,主要用來寫後端應用。
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
Thumbnail
npm(全名 Node Package Manager,node套件管理器)
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News