2016-10-11

Node-Red 簡介與快速安裝

想當年,阿舍看到同學用軟體在拉那個電路圖的時候, 就想說, 是何時,阿舍在寫的軟體才有機會可以像電子元件一樣來組來組去和拉來拉去哩! ... 然後,這件事就讓阿舍這樣怨嘆了 N 年之後,阿舍在去年,因為工作上的需要,”被迫” 開始使用 Node-Red 來寫東西,那時候,阿舍就和許多人一樣,就只是拿 Node-Red 來當串 IoT 的工具而已,也沒有想太多,就只是覺得,比起阿舍之前自己用手刻來串這些東西,Node-Red 真的是簡單和容易太多了哩 ...


然後,最近,阿舍又因為工作的需要,再度的使用 Node-Red 來玩比較複雜的東西之後,嗯 ... 阿舍才有種驚為天人的感覺出現哩 ! ... 阿舍這才發現,原來,Node-Red 好好應用的話,除了省時省力之外,還真的有機會像電子元件一樣的拉一拉和組一組就可以串出一個服務或應用系統了哩 ! ... 因為,Node-Red 是一個圖型界面的工具,裡面提供許多種特定功能的 “Node”,使用者只要透過 Node-Red 的圖型工具來利用這些不同功能的 Node 給設定和組合起來,然後,加入一些自定的程式碼,這樣,就可以串出一個特定功能的流程 (Flow) 來執行一些功能。



阿舍覺得, 就程式開發的方便性來說, Node-Red 的好處就是可以很容易的把你的程式的流程給視覺化出來, 所以, 當流程變更時, 只要把連接的線調一調,然後, 馬上就可以測試和使用新的流程, 同時,因為每個 Node 之間都應該是有被連結的,因此, 當有某個 Node 是沒被連線時, 就可以很明確的知道這個 Node 是不需要的, 就可以刪除多餘的程式和功能哩 ...

舉例來說, 像下面這樣分別由一個 HTTP 輸入、一個自定功能和一個 HTTP 輸出等三個 Node 所組合起來的一個 Flow, 就可以針對一個特定的網址做回應,如果想要多加幾道處理或同時把收到的資料做其它的處理,也只要再加幾個 Node,然後, 把線拉一拉和串一串就可以了, 不用像傳統那樣, 要去改一堆的程式碼哩! ...


有關 Node-Red 的各式實用和方便的應用, 阿舍之後有空會再慢慢介紹,在這篇,阿舍先來介紹一下安裝的方式, 因為,要先安裝的起來才能試哩 ... 呵!Node-Red 的安裝不難, 由於 Node-Red 是用 Node.js 開發出來的, 所以, 只要用下列的 NPM 指令來安裝就可以了 (如果你的電腦上沒有安裝過 Node.js 的話, 那就要安裝 Node.js 的 4.4.x 版才行),安裝好之後,只要直接在命令列打入 node-red 後按 Enter 鍵執行,就可以啟動了。

$ sudo npm install -g node-red

$ node-red

啟動後,會看到一堆訊息, 這是因為 Node-Red 是個 Web Based 的工具, 所以, 執行 node-red 指令後, 是啟動了 Node-Red 的 Server 程式,接著, 要打開瀏覽器輸入 http://127.0.0.1:1880 就會看到 Node-Red 的圖型編輯工具, 然後,就可以開工了哩 ...

要說明的是,用這種方式安裝的 Node-Red,預設會把它的設定檔及之後設計好的流程檔存在你的家目錄下的 .node-red 資料夾裡,除此之外,也可以用 Node-Red 的 Docker Image 來安裝,用 Docker Image 來安裝和使用的好處,除了不會污染環境之外 ( 喔 ! 是不需要在自己的電腦安裝 Node.js 的意思哩 ! ... 呵 ! ),可攜性也比較高,是阿舍比較建議的方式,下面就是快速用 Node-Red 的 Docker Image 來使用 Node-Red 的操作指令 ...

$ docker pull nodered/node-red-docker
$ docker run -it -p 1880:1880 --name node-red nodered/node-red-docker

執行完成上面的二行指令後,就會看到 Node-Red Server 執行起來的畫面,接下來,就可以用瀏覽器來打開 Node-Red 的圖型編輯工具了,另外,如果想要保存設定檔和流程檔的資料的話,就可以像下面的指令一樣,用 -v 選項來把 /data 這個資料夾給外掛出來做儲存 ( Node-Red 的 Docker Image 版的設定檔和流程檔,預設是放在 Container 裡的 /data 這個資料夾),同時,如果不需要看到 Node-Red Server 執行時所顯示的訊息的話,那就像下面的指令一樣,多加上一個 -d 選項來讓這個 Container 執行在背景裡哩 ...

$ docker run -it -p 1880:1880 -v /home/arthurtoday/data/node-red:/data --name node-red -d nodered/node-red-docker


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁