欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node-Red的部署與啟動(dòng)實(shí)現(xiàn)

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

一、Node-RED 運(yùn)行機(jī)制

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

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

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

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

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

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

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

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

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

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

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

      • html文件:定義節(jié)點(diǎn)在編輯器中的外觀(圖標(biāo)、顏色)、配置項(xiàng)(如 API 密鑰、端口號(hào)),通過RED.nodes.registerType注冊(cè)節(jié)點(diǎn)類型。?
      • js文件:實(shí)現(xiàn)節(jié)點(diǎn)的運(yùn)行時(shí)邏輯,包括on("input")(接收輸入消息觸發(fā))、send()(發(fā)送輸出消息)等核心方法。?
      • package.json:聲明節(jié)點(diǎn)名稱、版本、依賴(如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的自啟動(dòng)

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

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

3.1 啟動(dòng)命令

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è)置運(yùn)行時(shí)監(jiān)聽的 TCP 端口。默認(rèn)值: 1880
  • --safe:?jiǎn)?dòng) Node-RED 但不啟動(dòng)流程。當(dāng)部署更改時(shí),流程才會(huì)啟動(dòng)
  • -s, --settings FILE:設(shè)置要使用的配置文件。默認(rèn): settings.jsuserDir
  • --title TITLE:設(shè)置進(jìn)程窗口標(biāo)題
  • -u, --userDir DIR:設(shè)置要使用的用戶目錄。默認(rèn): ~/.node-red
  • -v:?jiǎn)⒂迷敿?xì)輸出
  • -D X=Y|@file:覆蓋單個(gè)設(shè)置
  • flows.json|projectName:如果項(xiàng)目功能未啟用,這將設(shè)置您要與之工作的流程文件。如果項(xiàng)目功能已啟用,這將確定應(yīng)啟動(dòng)哪個(gè)項(xiàng)目。
  • -?, --help:顯示命令行使用幫助并退出

3.3 參數(shù)示例

3.3.1 啟用詳細(xì)輸出

  • ?參數(shù)作用?:?jiǎn)?dòng) Node-RED 時(shí)輸出詳細(xì)日志(如模塊加載、配置讀取等過程),用于調(diào)試問題。

  • ?命令示例?:

    node-red -v
    
  • ?場(chǎng)景說明?:當(dāng) Node-RED 啟動(dòng)失?。ㄈ绮寮?bào)錯(cuò)、端口占用)時(shí),通過 -v查看詳細(xì)日志,快速定位問題原因(例如 “某個(gè)節(jié)點(diǎn)模塊缺失”“配置文件語法錯(cuò)誤”)。

3.3.2 顯示幫助信息

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

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

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

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

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

  • ?命令示例?:

    # 假設(shè)自定義配置文件存放在 /home/user/custom-node-red/settings-prod.js
    node-red --settings /home/user/custom-node-red/settings-prod.js
    
  • ?場(chǎng)景說明?:多環(huán)境部署時(shí)使用(如開發(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 的用戶目錄(默認(rèn)是 ~/.node-red,存放流程文件、插件、配置),實(shí)現(xiàn)多用戶 / 多實(shí)例隔離。

  • ?命令示例?:

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

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

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

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

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

3.6 設(shè)置進(jìn)程窗口標(biāo)題

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

  • ?命令示例?:

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

3.7 安全模式啟動(dòng)

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

  • ?命令示例?:

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

3.8 指定流程文件或項(xiàng)目名

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

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

  • ?命令示例?:

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

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

  • ?命令示例?:

    # 啟動(dòng)名為“智慧家居控制”的項(xiàng)目
    node-red 智慧家居控制
    
  • ?場(chǎng)景說明?:?jiǎn)⒂庙?xiàng)目功能后,多個(gè)項(xiàng)目的文件被統(tǒng)一管理(如 Git 版本控制),通過項(xiàng)目名快速啟動(dòng)目標(biāo)項(xiàng)目,無需手動(dòng)指定流程文件路徑。

3.9 覆蓋單個(gè)配置

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

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

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

四、版本升級(jí)

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

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

相關(guān)文章

  • Nodejs環(huán)境實(shí)現(xiàn)socket通信過程解析

    Nodejs環(huán)境實(shí)現(xiàn)socket通信過程解析

    這篇文章主要介紹了Nodejs環(huán)境實(shí)現(xiàn)socket通信過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 獨(dú)立部署小程序基于nodejs的服務(wù)器過程詳解

    獨(dú)立部署小程序基于nodejs的服務(wù)器過程詳解

    這篇文章主要介紹了獨(dú)立部署小程序基于nodejs的服務(wù)器過程詳解,完全自定義的部署小程序服務(wù)器, 不依托于騰訊云服務(wù)器體系. 以阿里云服務(wù)器為基礎(chǔ)建立.服務(wù)器語言選用nodejs.,需要的朋友可以參考下
    2019-06-06
  • node.js中的fs.writeFile方法使用說明

    node.js中的fs.writeFile方法使用說明

    這篇文章主要介紹了node.js中的fs.writeFile方法使用說明,本文介紹了fs.writeFile的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Node.js完整實(shí)現(xiàn)博客系統(tǒng)詳解

    Node.js完整實(shí)現(xiàn)博客系統(tǒng)詳解

    這篇文章主要介紹了Node.js完整實(shí)現(xiàn)一個(gè)博客系統(tǒng)的流程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • nodejs 整合kindEditor實(shí)現(xiàn)圖片上傳

    nodejs 整合kindEditor實(shí)現(xiàn)圖片上傳

    這篇文章主要介紹了nodejs 整合kindEditor實(shí)現(xiàn)圖片上傳,需要的朋友可以參考下
    2015-02-02
  • sublime text配置node.js調(diào)試(圖文教程)

    sublime text配置node.js調(diào)試(圖文教程)

    下面小編就為大家分享一篇sublime text配置node.js調(diào)試(圖文教程),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-11-11
  • Nodejs實(shí)現(xiàn)短信驗(yàn)證碼功能

    Nodejs實(shí)現(xiàn)短信驗(yàn)證碼功能

    使用Nodejs的開發(fā)者愈來越多,基于Nodejs的后臺(tái)開發(fā)也多了起來,像短信驗(yàn)證碼、短信群發(fā)、國(guó)際短信這些需求,完全可以采用第三方接口來實(shí)現(xiàn),云片就提供了這樣的接口
    2017-02-02
  • 詳解如何在NodeJS應(yīng)用程序中處理多個(gè)API請(qǐng)求

    詳解如何在NodeJS應(yīng)用程序中處理多個(gè)API請(qǐng)求

    NodeJS默認(rèn)是異步的,這意味著它已經(jīng)能夠同時(shí)處理多個(gè)請(qǐng)求,但它只適用于I/O操作,如HTTP請(qǐng)求、文件系統(tǒng)操作、數(shù)據(jù)庫查詢、實(shí)時(shí)聊天應(yīng)用等,在處理CPU密集型任務(wù)時(shí),可能需要很長(zhǎng)時(shí)間,這就是為什么NodeJS提供了一些我們將在下面介紹的特定包
    2023-12-12
  • node.js基于express使用websocket的方法

    node.js基于express使用websocket的方法

    這篇文章主要介紹了node.js基于express使用websocket的方法,結(jié)合實(shí)例形式分析了node.js基于express調(diào)用websocket相關(guān)設(shè)置與使用操作技巧,需要的朋友可以參考下
    2017-11-11
  • node.js中EJS 模板快速入門教程

    node.js中EJS 模板快速入門教程

    本篇文章主要介紹了EJS 模板快速入門學(xué)習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05

最新評(píng)論