Node是Node-RED中的基本單位,是用來表達邏輯創建流的基礎單元,開發人員可以通過Node-RED所提供的編輯器進行流程編輯。
Node類別
Node-RED中不同的Node有不同的顏色進行標識,通過對這些Node進行連接從而完成所需要的流程。核心Node主要有如下幾種:
- Inject
- Debug
- Function
- Change
- Switch
- Template
Node類別:Inject
Inject類型的Node用來手工觸發流程,此類型的Node左側有個按鈕,點擊按鈕則可觸發動作,當然也可以設定特定的時間間隔進行自動觸發。此類型Node發送的信息包含payload和topic屬性信息,其中payload可以被設定爲很多種類型,比如:
- 流或者全局上下文屬性值
- 字符串、數字、布爾、緩衝或對象
- 毫秒精度的時間信息
Node類別:Debug
Debug類型的Node被用來在Debug側邊欄中進行信息的展示,展示的信息會包含Debug Node發送消息的時間,此類型的Node上的按鈕可以用來啓用或者禁用輸出信息。Debug節點也可以進行配置用來發送消息到運行日誌。
建議:不被使用的Debug節點建議進行disable或者刪除。
Node類別:Function
可以在Function類型的Node中執行JavaScript,通過對傳遞的消息的處理,可以實現用戶所需要的功能,
Node類別:Change
Change類型的Node可以用來修改消息的屬性或者內容,常見的設定主要有如下幾種:
Set: 設定屬性,可以用來設定或者修改屬性的名稱等
Change:搜索並替換消息屬性的部分內容
Move:移動或者重命名屬性信息
Delete:刪除一個屬性
Node類別:Switch
Switch類型的Node可以用來根據消息內容的不同來進行不同分支的流程處理,包括Node-RED的switch一詞也來源於編程語言中的switch(很多編程語言中都有switch語句用來進行分支邏輯的處理)。
Node類別:Template
Template類型的Node可以被用來根據消息的內容,結合模版生成結果內容,模版的格式遵循mustache格式,詳細可參看:
自定義Node
Node-RED提供了自定義Node的功能,一般來說,自定義的Node有JavaScript文件和HTML文件所組成。在HTML文件中定義Node的屬性信息,而JavaScript文件中定義此Node要完成的功能,根據需要定義好屬性和功能之後,將文件放至Node加載的目錄中,在後續的操作中就可以使用自定義的Node了。