Global 物件和模組 | Node.js

更新於 2024/03/23閱讀時間約 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,
};


參考資料

主要放程式學習筆記,分享 Creative Coding 相關內容、作品
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
在終端機試玩 或 VS Code 執行 JS 檔
V8 由 Google 開發的開源 JavaScript 引擎
幾乎所有的網站都一定會用到圖片和 icon,甚至可能會需要載入大量的圖片,它們也是網站中佔比最多的資源,所以透過優化這些圖片資源,就可能帶來很大的效能提升。
Code Minimize & Uglify (程式碼最小化和醜化)
使用者體驗的三個核心指標 Core Web Vitals:LCP、INP、CLS,以及 RAIL Model 介紹。
在終端機試玩 或 VS Code 執行 JS 檔
V8 由 Google 開發的開源 JavaScript 引擎
幾乎所有的網站都一定會用到圖片和 icon,甚至可能會需要載入大量的圖片,它們也是網站中佔比最多的資源,所以透過優化這些圖片資源,就可能帶來很大的效能提升。
Code Minimize & Uglify (程式碼最小化和醜化)
使用者體驗的三個核心指標 Core Web Vitals:LCP、INP、CLS,以及 RAIL Model 介紹。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Global Recognition Awards Introduces Recognition Standards, Which Are Establishing New Benchmarks in the Business Sector   New York, NY - 07/03/2024
Global Pioneers Conference Catches Eyes of Chinese Influentials with New Insights into Overseas Markets Exploration   Global Pioneers Conference 202
Thumbnail
Global Economics Analyst|2024年|Goldman Sachs 高盛上周發表的2024經濟看法,給各位參考
Thumbnail
簡介 什麼是global entry? Global Entry是美國海關快速通道,可以直接透過機器檢查並完成入境手續,一來不用跟其他人大排長龍,而且不用被海關問問題
Thumbnail
本文將簡介全球主要經濟體新創以及產業的趨勢(2022年底為止)。 主要經濟體新創概況 資料來源: CB Insight以及大家最近應該特別熟悉的 SVB(矽谷銀行) 北美 首先,全世界約有59%的新創來自於美國。以2019年為例,美國新創公司數目高達71,153,排行世界第二的僅有13,125。並且
Thumbnail
Woo X 原名為 Woo Network,於2021年8月推出WOO X 交易所,它採用了公開透明的訂單流付款方式(Payment For Order Flow),其最主要的優勢是讓用戶可以實現零手續費的特點。 這邊將對WOO X Global 交易所的背景、安全性做介紹
Thumbnail
科技快速更新換代,一個過往非常成功的企業可能突然之間就會被新進的對手擊倒,光靠坐擁過往所累績的優勢已經無法跟上這個時代的脈動了,數位轉型已然是企業永續經營的重要課題。但是要怎麼成功地進行數位轉型呢?讓我們來看看一個老牌媒體公司的成功經驗!
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Global Recognition Awards Introduces Recognition Standards, Which Are Establishing New Benchmarks in the Business Sector   New York, NY - 07/03/2024
Global Pioneers Conference Catches Eyes of Chinese Influentials with New Insights into Overseas Markets Exploration   Global Pioneers Conference 202
Thumbnail
Global Economics Analyst|2024年|Goldman Sachs 高盛上周發表的2024經濟看法,給各位參考
Thumbnail
簡介 什麼是global entry? Global Entry是美國海關快速通道,可以直接透過機器檢查並完成入境手續,一來不用跟其他人大排長龍,而且不用被海關問問題
Thumbnail
本文將簡介全球主要經濟體新創以及產業的趨勢(2022年底為止)。 主要經濟體新創概況 資料來源: CB Insight以及大家最近應該特別熟悉的 SVB(矽谷銀行) 北美 首先,全世界約有59%的新創來自於美國。以2019年為例,美國新創公司數目高達71,153,排行世界第二的僅有13,125。並且
Thumbnail
Woo X 原名為 Woo Network,於2021年8月推出WOO X 交易所,它採用了公開透明的訂單流付款方式(Payment For Order Flow),其最主要的優勢是讓用戶可以實現零手續費的特點。 這邊將對WOO X Global 交易所的背景、安全性做介紹
Thumbnail
科技快速更新換代,一個過往非常成功的企業可能突然之間就會被新進的對手擊倒,光靠坐擁過往所累績的優勢已經無法跟上這個時代的脈動了,數位轉型已然是企業永續經營的重要課題。但是要怎麼成功地進行數位轉型呢?讓我們來看看一個老牌媒體公司的成功經驗!