最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node-Red的部署與啟動實現(xiàn)

 更新時間:2025年10月19日 09:29:26   作者:Oo小剛oO  
Node-RED 的架構(gòu)基于 Node.js 的事件驅(qū)動模型,本文詳細的介紹了Node-RED的安裝步驟及啟動參數(shù)的作用和使用場景,具有一定的參考價值,感興趣的可以了解一下

一、Node-RED 運行機制

Node-RED 的架構(gòu)基于 Node.js 的事件驅(qū)動模型,核心由?運行時(Runtime)?、編輯器(Editor)和節(jié)點(Nodes)三部分組成,三者協(xié)同實現(xiàn)可視化流程編程與執(zhí)行。?

  1. 運行時( Runtime ):流程執(zhí)行的 “大腦”?

    • ?核心功能?:負責加載節(jié)點、解析流程配置、管理節(jié)點間消息傳遞、處理事件觸發(fā),是流程運行的核心引擎。?

    • ?技術(shù)細節(jié)?:?

      • 基于 Node.js 的EventEmitter模塊實現(xiàn)事件監(jiān)聽與觸發(fā),確保消息處理的高效性與非阻塞性。?
      • 采用 “流(Flow)” 作為流程的基本單位,每個流由多個節(jié)點和連接構(gòu)成,運行時通過解析 JSON 格式的流配置文件,將節(jié)點實例化并建立消息路由。?
      • 支持多流并行運行,不同流之間可通過 “鏈接節(jié)點(Link Node)” 或全局上下文(Context)實現(xiàn)數(shù)據(jù)交互。?
    • ?消息模型?:?

      • 節(jié)點間傳遞的消息為 msg 對象,默認包含 msg.payload(消息內(nèi)容)和 msg.topic(消息主題),用戶可自定義添加其他屬性(如 msg.timestampmsg.source)。?
      • 消息傳遞支持 “一對一”“一對多”“多對一” 模式,例如一個 “注入節(jié)點” 可同時向多個 “函數(shù)節(jié)點” 發(fā)送消息。?
  2. 編輯器( Editor ):可視化開發(fā)的 “畫布”?

    • ?核心功能?:提供基于瀏覽器的可視化界面,支持節(jié)點拖拽、連接配置、流程保存與部署,是用戶與 Node-RED 交互的主要入口。?

    • ?技術(shù)細節(jié)?:?

      • 編輯器與運行時通過 WebSocket 協(xié)議實時通信,實現(xiàn) “部署即生效”:用戶點擊 “部署” 后,編輯器將流程配置 JSON 發(fā)送至運行時,運行時即時更新并執(zhí)行流程,無需重啟服務(wù)。?
      • 支持 “工作區(qū)( Workspace )” 分區(qū),可通過標簽頁切換不同流程,方便大型項目的模塊化管理。?
  3. 節(jié)點( Nodes ):流程功能的 “積木”?

    • ?核心定位?:節(jié)點是封裝特定功能的代碼模塊,是流程的基本功能單元,用戶通過組合節(jié)點實現(xiàn)業(yè)務(wù)邏輯。?

    • ?結(jié)構(gòu)組成?:每個節(jié)點包含html(編輯器配置界面)、js(運行時邏輯)和package.json(元數(shù)據(jù))三部分:?

      • html文件:定義節(jié)點在編輯器中的外觀(圖標、顏色)、配置項(如 API 密鑰、端口號),通過RED.nodes.registerType注冊節(jié)點類型。?
      • js文件:實現(xiàn)節(jié)點的運行時邏輯,包括on("input")(接收輸入消息觸發(fā))、send()(發(fā)送輸出消息)等核心方法。?
      • package.json:聲明節(jié)點名稱、版本、依賴(如mqtt庫)、兼容的 Node-RED 版本等信息。

二、安裝Node-Red

2.1 安裝NVM

這里以Linux系統(tǒng)為例,推薦使用NVM安裝NodeJS,方便后續(xù)管理

bash -c "$(curl -fsSL https://gitee.com/RubyMetric/nvm-cn/raw/main/install.sh)"
source ~/.nvm/nvm.sh

2.2 安裝NodeJS

nvm install v22.16.0

2.3 安裝Node-Red

npm install -g --unsafe-perm node-red

2.4 Node-Red的自啟動

npm install -g pm2
pm2 start node-red --node-args="--max-old-space-size=1024"  #根據(jù)實際內(nèi)存自行調(diào)整
pm2 save
pm2 startup

三、Node-Red的啟動參數(shù)

3.1 啟動命令

node-red [-v] [-?] [--settings settings.js] [--userDir DIR]
         [--port PORT] [--title TITLE] [--safe] [flows.json|projectName]
         [-D X=Y|@file]

3.2 參數(shù)說明

  • -p, --port PORT:設(shè)置運行時監(jiān)聽的 TCP 端口。默認值: 1880
  • --safe:啟動 Node-RED 但不啟動流程。當部署更改時,流程才會啟動
  • -s, --settings FILE:設(shè)置要使用的配置文件。默認: settings.jsuserDir
  • --title TITLE:設(shè)置進程窗口標題
  • -u, --userDir DIR:設(shè)置要使用的用戶目錄。默認: ~/.node-red
  • -v:啟用詳細輸出
  • -D X=Y|@file:覆蓋單個設(shè)置
  • flows.json|projectName:如果項目功能未啟用,這將設(shè)置您要與之工作的流程文件。如果項目功能已啟用,這將確定應(yīng)啟動哪個項目。
  • -?, --help:顯示命令行使用幫助并退出

3.3 參數(shù)示例

3.3.1 啟用詳細輸出

  • ?參數(shù)作用?:啟動 Node-RED 時輸出詳細日志(如模塊加載、配置讀取等過程),用于調(diào)試問題。

  • ?命令示例?:

    node-red -v
    
  • ?場景說明?:當 Node-RED 啟動失?。ㄈ绮寮箦e、端口占用)時,通過 -v查看詳細日志,快速定位問題原因(例如 “某個節(jié)點模塊缺失”“配置文件語法錯誤”)。

3.3.2 顯示幫助信息

  • ?參數(shù)作用?:輸出所有命令行參數(shù)的用法說明,無需啟動 Node-RED,僅用于查詢參數(shù)。

  • ?命令示例?(兩種寫法均可):

    # 寫法1:短參數(shù) -?
    node-red -?
    # 寫法2:長參數(shù) --help
    node-red --help
    
  • ?場景說明?:忘記某個參數(shù)的作用時,直接執(zhí)行該命令快速查閱,例如 “想不起用戶目錄參數(shù)是 --userDir還是 --user” 時,通過 --help確認。

3.3 指定配置文件 {#boot-custom-settings}

  • ?參數(shù)作用?:不使用默認的 settings.js(默認在用戶目錄下),而是指定自定義的配置文件(如自定義節(jié)點路徑、認證規(guī)則)。

  • ?命令示例?:

    # 假設(shè)自定義配置文件存放在 /home/user/custom-node-red/settings-prod.js
    node-red --settings /home/user/custom-node-red/settings-prod.js
    
  • ?場景說明?:多環(huán)境部署時使用(如開發(fā)環(huán)境、生產(chǎn)環(huán)境),生產(chǎn)環(huán)境的 settings-prod.js可能關(guān)閉調(diào)試日志、啟用 HTTPS,通過該參數(shù)快速切換配置。

3.4 指定用戶目錄

  • ?參數(shù)作用?:自定義 Node-RED 的用戶目錄(默認是 ~/.node-red,存放流程文件、插件、配置),實現(xiàn)多用戶 / 多實例隔離。

  • ?命令示例?:

    # 為“設(shè)備監(jiān)控”場景創(chuàng)建獨立用戶目錄 /opt/node-red/device-monitor
    node-red --userDir /opt/node-red/device-monitor
    
  • ?場景說明?:同一臺服務(wù)器需要運行多個 Node-RED 實例(如 “設(shè)備監(jiān)控” 和 “數(shù)據(jù)采集”),通過 --userDir隔離各自的流程和插件,避免沖突。

3.5 指定監(jiān)聽端口

  • ?參數(shù)作用?:設(shè)置 Node-RED 后臺服務(wù)的 TCP 監(jiān)聽端口(默認是 1880),解決端口占用問題或?qū)崿F(xiàn)多實例端口區(qū)分。

  • ?命令示例?(兩種寫法均可):

    # 寫法1:短參數(shù) -p,指定端口為 1881
    node-red -p 1881
    # 寫法2:長參數(shù) --port,指定端口為 1882(用于生產(chǎn)環(huán)境實例)
    node-red --port 1882
    
  • ?場景說明?:默認端口 1880 已被其他服務(wù)占用,或需要運行兩個 Node-RED 實例(分別用 1881 和 1882 端口)時,用該參數(shù)指定端口。

3.6 設(shè)置進程窗口標題

  • ?參數(shù)作用?:自定義 Node-RED 運行時的進程窗口標題(僅在終端 / 命令行窗口中顯示),便于識別多實例進程。

  • ?命令示例?:

    # 為“車間溫濕度監(jiān)控”實例設(shè)置窗口標題
    node-red --title "Node-RED - 車間溫濕度監(jiān)控" --port 1883
    
  • ?場景說明?:在終端中同時運行多個 Node-RED 實例時,默認窗口標題都是 “node-red”,通過 --title自定義標題(如 “車間溫濕度監(jiān)控”“設(shè)備故障報警”),可快速區(qū)分不同實例。

3.7 安全模式啟動

  • ?參數(shù)作用?:啟動 Node-RED 但不自動運行已部署的流程,僅加載編輯器;需手動在編輯器中點擊 “部署”,流程才會啟動。

  • ?命令示例?:

    # 安全模式啟動,避免流程啟動時因錯誤導(dǎo)致崩潰
    node-red --safe --port 1880
    
  • ?場景說明?:流程中存在錯誤(如 “MQTT 服務(wù)器地址寫錯”“函數(shù)節(jié)點語法錯誤”),直接啟動可能導(dǎo)致 Node-RED 崩潰;用 --safe啟動后,先在編輯器中修復(fù)錯誤,再部署運行流程,避免啟動失敗。

3.8 指定流程文件或項目名

該參數(shù)分兩種場景(取決于是否啟用 “項目功能”),示例分別如下:

場景 1:未啟用項目功能(指定流程文件)
  • ?參數(shù)作用?:不使用默認的 flows_<主機名>.json(用戶目錄下),而是指定自定義的流程文件(如備份的舊流程、特定場景的流程)。

  • ?命令示例?:

    # 加載備份的流程文件 /home/user/backups/node-red/flows-20240501.json
    node-red /home/user/backups/node-red/flows-20240501.json
    
  • ?場景說明?:需要恢復(fù)歷史備份的流程,或切換到另一個場景的流程(如 “工作日流程” 和 “節(jié)假日流程”),直接指定流程文件路徑即可加載。

場景 2:已啟用項目功能(指定項目名)
  • ?參數(shù)作用?:Node-RED 啟用 “項目功能” 后(需在編輯器中配置),通過項目名指定啟動哪個項目(每個項目包含獨立的流程、配置)。

  • ?命令示例?:

    # 啟動名為“智慧家居控制”的項目
    node-red 智慧家居控制
    
  • ?場景說明?:啟用項目功能后,多個項目的文件被統(tǒng)一管理(如 Git 版本控制),通過項目名快速啟動目標項目,無需手動指定流程文件路徑。

3.9 覆蓋單個配置

  • ?參數(shù)作用?:臨時覆蓋 settings.js中的某個配置(無需修改配置文件),支持 “單鍵值覆蓋” 或 “通過文件批量覆蓋”。

  • ?命令示例?(兩種用法):

    1. ?單鍵值覆蓋?(如臨時關(guān)閉編輯器訪問限制):
    # 覆蓋 "editorTheme.disableEdit" 配置,允許編輯(默認可能為 false)
    node-red -D editorTheme.disableEdit=true --port 1880
    
    1. ?文件批量覆蓋?(如通過 override.conf批量修改配置):
    # 先創(chuàng)建 override.conf 文件,內(nèi)容為:
    # editorTheme.title=臨時測試環(huán)境
    # httpNode.auth.user=test
    # 再通過 -D @file 加載該文件
    node-red -D @/home/user/node-red-override.conf
    
  • ?場景說明?:臨時測試配置(如 “臨時允許匿名訪問編輯器”“臨時修改 HTTP 節(jié)點的認證用戶”),無需修改 settings.js,測試完成后直接刪除參數(shù)即可恢復(fù)默認配置。

四、版本升級

sudo npm install -g --unsafe-perm node-red

到此這篇關(guān)于Node-Red的部署與啟動實現(xiàn)的文章就介紹到這了,更多相關(guān)Node-Red 部署與啟動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Node.JS循環(huán)刪除非空文件夾及子目錄下的所有文件

    Node.JS循環(huán)刪除非空文件夾及子目錄下的所有文件

    這篇文章主要介紹了Node.JS循環(huán)刪除非空文件夾及子目錄下的所有文件及node.js遞歸刪除非空文件夾的實例代碼,需要的朋友可以參考下
    2018-03-03
  • 詳解Node.JS模塊 process

    詳解Node.JS模塊 process

    這篇文章主要介紹了Node.JS模塊 process的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)node.js,感興趣的朋友可以了解下
    2020-08-08
  • 配置nodejs環(huán)境的方法

    配置nodejs環(huán)境的方法

    本篇文章主要介紹了配置nodejs環(huán)境變量的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Node.js使用對話框ngDialog的示例代碼

    Node.js使用對話框ngDialog的示例代碼

    本篇文章主要介紹了Node.js使用對話框ngDialog的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Node.js基礎(chǔ)入門之回調(diào)函數(shù)及異步與同步詳解

    Node.js基礎(chǔ)入門之回調(diào)函數(shù)及異步與同步詳解

    Node.js是一個基于Chrome?V8引擎的JavaScript運行時。類似于Java中的JRE,.Net中的CLR。本文將詳細為大家介紹Node.js中的回調(diào)函數(shù)及異步與同步,感興趣的可以了解一下
    2022-03-03
  • 多版本node的安裝和切換詳細操作步驟

    多版本node的安裝和切換詳細操作步驟

    有時候需要運行不同的項目,node版本不一致會導(dǎo)致不少問題,下面這篇文章主要給大家介紹了關(guān)于多版本node的安裝和切換詳細操作步驟的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • node schedule實現(xiàn)定時任務(wù)的示例代碼

    node schedule實現(xiàn)定時任務(wù)的示例代碼

    實際工作中,可能會遇到定時清除某個文件夾內(nèi)容,本文主要介紹了node schedule實現(xiàn)定時任務(wù)的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • 使用Node.js實現(xiàn)Clean?Architecture方法示例詳解

    使用Node.js實現(xiàn)Clean?Architecture方法示例詳解

    這篇文章主要為大家介紹了使用Node.js實現(xiàn)Clean?Architecture方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Node.js?全局變量無法掛載問題解決分析

    Node.js?全局變量無法掛載問題解決分析

    這篇文章主要為大家介紹了Node.js?全局變量無法掛載問題解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • node?+?multer?實現(xiàn)文件上傳過程

    node?+?multer?實現(xiàn)文件上傳過程

    這篇文章主要介紹了node?+?multer?實現(xiàn)文件上傳過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

上林县| 易门县| 内丘县| 济阳县| 仁寿县| 汝城县| 美姑县| 台江县| 惠东县| 清涧县| 富宁县| 黔江区| 东辽县| 咸阳市| 普兰县| 石首市| 大安市| 班戈县| 上犹县| 霸州市| 永德县| 建瓯市| 陕西省| 平阳县| 玉溪市| 五寨县| 平安县| 淄博市| 武山县| 泸溪县| 大宁县| 湘潭县| 兰坪| 鸡西市| 县级市| 磐安县| 邢台县| 凤凰县| 阿拉尔市| 沁阳市| 凯里市|