Global 物件和模組 | Node.js

阿榮-avatar-img
發佈於前端
更新於 發佈於 閱讀時間約 2 分鐘

window 和 global 的差別

我們在 chrome console 寫程式碼時,會有 window 物件 (全域),而在 Node.js (以下簡稱 node) 也會有全域 global 物件。

在 VS Code 打以下程式碼來觀察,可以看到 global 物件包含 a。

global.a = 1;
console.log(global);


node 的 global 跟瀏覽器 window 有一些差別,如果我們在瀏覽器 console 打 var a = 1,在 window 可以直接讀取到 a 變數,但在 node 輸入 var a = 1,不會被繼承到 global 上,想放在 global,一定要寫 global.a。每個檔案都是一個獨立的模組,一樣可以讀取、寫入和變更 global 的值,但各自的值不會輕易汙染 global 的值。

raw-image


模組化

每個檔案都是獨立模組,例如:我創建了兩個檔案 app.js 和 data.js,分別輸入 var a = 1var data = 2,但在 app.js 無法讀取到 data 的值,那我需要取得其他模組該怎麼辦?

跟 ES6 的匯入匯出概念很像,被匯出的檔案需要 export + 資料,在目標地匯入使用 import + 路徑。node 則是被匯出的檔案加上 module.exports + 資料,在目標地匯入使用 require + 路徑。

app.js 檔

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

console.log(a);
console.log(content);
console.log(content.data);
console.log(content.bark()); // 執行匯入的函式

data.js

  • 依照需求來設計匯出的資料格式
var data = 2;

module.exports = data;

// or
module.exports = {
content: data,
title: 'title',
};

// or
exports.data = 2;
// 等同於
module.exports = {
data: 2,
};

// or​
exports.bark = function() {
return 'bark!!!'
}


exports 寫法不混用

exports 和 module.exports 兩種不能混用,exports 會被 module.exports 覆蓋。

exports.bark = function() {
return 'bark!!!'
}

module.exports = {
data: 2,
};


參考資料

留言
avatar-img
留言分享你的想法!
avatar-img
阿榮 | 前端 ~ 互動藝術程式
2會員
39內容數
主要放程式學習筆記,分享 Creative Coding 相關內容、作品
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/19
避免網頁在不同瀏覽器中長不一樣。用 CSS Reset 來「重置」和統一瀏覽器預設樣式。
Thumbnail
2024/04/15
2024/04/15
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
在這篇教學文章中,我們將展示如何使用 Node.js 建立一個簡單的伺服器,並解決常見的跨來源資源共享(CORS)問題,確保伺服器能夠接收並處理來自不同來源的資料。
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
Node.js是一個JavaScript運行環境。它使用了一個非阻塞、事件驅動的I/O模型,使其非常適合用於數據密集型的即時應用程序。簡單來說,Node.js允許你使用JavaScript來編寫伺服器端代碼。 nvm 安裝nvm Windows : 點擊 Releases · coreybut
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章節將引導你如何建立一個TypeScript開發環境,這包括安裝Node.js、npm和TypeScript,建立一個TypeScript項目,設置編輯器,以及編寫和編譯TypeScript代碼。在完成這些步驟之後,你將能夠編寫、編譯和運行TypeScript代碼。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
Thumbnail
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
Thumbnail
針對 JavaScript 中的原始型別和隱性轉型進行了詳細的探討
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News