本篇會介紹6項常用的子模塊,並適時使用案例來介紹它們的功能以及再使用上的一些細節
共通模塊最常用到的子模塊之一,作為輸入用途,可以自行選擇payload類型
創立inject節點時點擊模塊可以進入設定,選單中主要分為5個要素:
輸出模塊,用來將輸入結果顯示在指定視窗上(通常是除錯視窗),點擊可以進入設定選單
設定選單主要包含:
使用javascript編寫的函式模塊,可以提供使用者自定義的功能,我們可以對傳入的物件屬性進行處理,透過返回msg物件,後續的模塊可以得到加工後的結果
例如我編寫一個用來判斷result值是否為真的模塊,如果成立便新增一個新的屬性note,並給予它一個值
if(msg.payload.result == true){
msg.payload.note = "test"
}
return msg;
或者編寫一個判斷屬性長度的模塊
var new_msg = {payload:msg.payload.length}
msg.payload = new_msg
return msg;
一樣點擊function模塊進入設定,在函數欄位編寫自定義的程式碼就可以了
改變物件屬性類型,可以進行增、刪、修改、轉移等操作
點擊模塊後可以進入設定選單,change模塊的重點在操作指令
這是一個很有趣的模塊,它類似程式中的switch語句,可以用來當作流程控制
switch(msg.payload){
case 1:
/*do something*/
break;
case 2:
/*do something*/
break;
...
}
選單中4個重點,分別對應switch的功能
其實不只常見的判斷子,Node-RED提供非常多的判斷模式供使用者使用,這些就留給大家慢慢摸索
template模塊可以提供使用者自定HTML模板
模板內可以輸入指定的HTML格式,舉個例子來看看這個模塊的功用,把以下html程式碼寫進template模塊內
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello~</title>
</head>
<body>
<h2>This is Node-RED<h2>
</body>
</html>
在側邊攔欄位找到httpin模塊,拖曳進來並起雙擊設定
在側邊欄位找到將http response模塊,拖曳進來並將template尾部連上它。完成後應該會如下圖所示
最後然後按下deploy鍵,在網址欄為輸入url 127.0.0.1:1880/hello就可以看到我們設定的html內容
實現目標:
{"id":"device0","result":true}
{"id":"device1","result":false}
if(msg.payload.result == true){
msg.payload.note = "test"
}
return msg;
手動注入inject模塊,經過測試可以發現右側除錯式窗成功打印我們要的結果,兩種方法接測試正確