聊完了為什麼在 Windows 電腦上用 Node-RED 搭配
agy CLI是個不錯的選擇,今天就來動手把 NodeRED 環境跑起來吧。
安裝環境的時候,最怕遇到那種「官方教學寫得好像很簡單,自己照著做卻噴一堆紅字」。這篇我把 Windows 上最簡單的安裝方式、避坑指南,以及 Node-RED 最關鍵的「Context 狀態記憶」一次說清楚。
本文同步發布於 GitHub: 2026-18th-it-ironman
在 Windows 上安裝 Node-RED 非常簡單,跟著這 4 個步驟走就行:
Node-RED 是跑在 Node.js 之上的。如果你的電腦還沒裝過:
前往 Node.js 繁體中文官方網站:👉 https://nodejs.org/zh-tw

點擊下載 「LTS(長期支援版)」 的 Windows 安裝檔(.msi 檔,建議 Node.js 20.x 或 22.x+)。

下載完成後開啟安裝程式,依照畫面指示**一路點擊「下一步(Next)」**直到完成安裝即可!

安裝完成後,打開 PowerShell 確認版本:
node -v # 會顯示如 v20.x.x 或 v22.x.x
npm -v # 會顯示如 10.x.x
在 PowerShell 中執行以下 npm 指令進行全域安裝:
npm install -g node-red
在 PowerShell 中直接輸入:
node-red
終端機將輸出啟動日誌,看到 Server now running at http://127.0.0.1:1880/ 就代表啟動成功了!

開啟瀏覽器,在網址列輸入 http://127.0.0.1:1880,進入後就能看到 NodeRED 的編輯畫面了。
如果沒有「記憶」,自動化管家每次執行任務時都像失憶一樣,只知道當下這一瞬間的數據:
但如果管家具備「記憶能力」,它就能變得很聰明:
G:/Downloads,其他分頁也能直接拿來用。」在 Node-RED 裡面,這套記憶機制叫做 Context(上下文 / 共享變數)。
在 Node-RED 中,變數並不是隨便亂丟的,而是根據「可見範圍(Scope)」嚴格劃分為三種層級:Global Context、Flow Context 與 Node Context。
我們先來認識這三者的正式定義與技術作用範圍:

如果覺得上面的技術定義太過抽象,可以把他們想像成辦公室裡的三種記事工具:
// 1. Global Context (大廳公佈欄)
const homedir = os.homedir();
global.set("downloadPath", path.join(homedir, "Downloads"));
const myPath = global.get("downloadPath");
// 2. Flow Context (會議室白板)
flow.set("lastAlertTime", Date.now());
const lastTime = flow.get("lastAlertTime");
// 3. Node Context (個人便利貼)
node.context().set("clickCount", 1);
const count = node.context().get("clickCount");
預設 Node-RED 的 Context 是放在記憶體(RAM)裡的。也就是說,電腦一旦重開機,所有計數器和狀態都會歸零。
要讓它具備永久記憶,只要開啟 Node-RED 內建的 localfilesystem 持久化功能:
settings.jsNode-RED 的設定檔位於 %USERPROFILE%\.node-red\settings.js。
打開 settings.js,找到 contextStorage 區塊並修改為:
module.exports = {
// ... 其他原有設定
contextStorage: {
default: {
module: "memory"
},
file: {
module: "localfilesystem",
config: {
// 不需要手動指定 dir,Node-RED 預設就會自動存在 .node-red/context 目錄中!
cache: true, // 啟用記憶體快取加速讀取
flushInterval: 30 // 每 30 秒批次寫入硬碟
}
}
}
}
重要提醒(必須重啟 Node-RED):
settings.js是 Node-RED 伺服器的核心設定檔,只有在啟動時會讀取一次。
修改儲存後,請回到原先運行 Node-RED 的 PowerShell 視窗,按下Ctrl + C停止服務,然後再次輸入node-red重啟!
重啟時若看到終端機日誌印出Context store : 'default' [module=localfilesystem],就代表檔案持久化已經大功告成!
在 NodeRED 中透過 flow context 存取持久化狀態非常簡單,程式碼如下:
// 從檔案儲存庫讀取 test_counter 的值(若無紀錄則預設為 0)
let count = flow.get('test_counter', 'file') || 0;
count += 1;
// 將累加後的 count 寫回 Flow Context 鍵值 'test_counter',並持久化至本地檔案
flow.set('test_counter', count, 'file');
msg.payload = {
message: 'Context 狀態記憶正常!',
current_count: count,
storage_engine: 'localfilesystem (file)'
};
return msg;
本系列文章部分有提供 NodeRED 程式碼,可透過以下方式匯入 flow 查看
點選右上角的選單,找到匯入的按鈕

進入匯入節點視窗後,點選上方匯入所選檔案,選擇所需的 flow.json 檔案即可。

匯入之後 flow 會像是下圖所示:

今天我們順利把 Node-RED 架設在 Windows 本機上,並且搞懂了讓管家具備記憶能力的 Context 模型。
agy CLI!