Zápisník experimentátora
Hierarchy: Node.js
V tomto článku si ukážeme, ako sa vytvárajú toky. Bude to jednoduchý príklad, ktorý je založený na príklade z oficiálnej dokumentácie. Vytvorený tok bude mať jeden vstup, jednu funkciu, ktorá dáta modifikuje a jeden výstup na debug konzolu. V predchádzajúcom článku sme si ukázali, ako sa Node-RED inštaluje a ako sa pracuje s editorom tokov. Poďme si vytvoriť prvý tok, ktorý nám pomôže si predstaviť, na čo sú toky dobré.
Pomocou techniky drag-drop si potiahnite tri uzly do editora. Navzájom ich prepojte.
Tento uzol nám slúži na vytvorenie správy. Je to ideálny uzol na vyskúšanie možností Node-RED, pretože po stlačení tlačidla na uzle vygeneruje správu, ktorá putuje cez celý tok. V tomto prípade je nastavená ako timestamp, čo je čas v milisekundách od 1.1.1970. Ale môžete si vybrať spomedzi veľa možností. Napríklad môžete vytvoriť tok správ, ktoré obsahujú čas a sú generované každých N sekúnd.
Toto je len príklad na vytvorenie jedného typu vstupu. Vstupom ale môže byť prakticky čokoľvek. Napríklad v pokračovaní tohoto článku budeme intenzívne používať dva typy vstupných uzlov.
Pomocou funkcie môžete správu v danom uzle modifikovať. Na obrázku vidíte príklad funkcie, ktorá mení pôvodnú správu na inú. V tomto prípade vytvoríme z pôvodnej hodnoty v milisekundách objekt Date
, pomocou ktorého si vytvoríme tri atribúty nového objektu, ktorý bude pokračovať ako správa ďalej v toku. Funkcie sa programujú v javascripte. Funkcia toString
skonvertuje dátum do textového reťazca vo vašom jazyku. Funkcia toISOString
skonvertuje dátum do univerzálnejšej podoby, ktorú pochopí programátor v ľubovoľnej krajine na svete.
Tento typ uzla nám slúži na vypisovanie kontrolných výpisov. Počas navrhovania tokov sa potrebujete presvedčiť, že vám všetko funguje správne. Preto v priebehu návrhu obvykle pripojíte na dôležité miesta niekoľko takýchto uzlov a keď máte celý tok odladený, necháte v toku iba tie najdôležitejšie.
Po stlačení tlačidla na uzle inject sa vytvorí správa, ktorá obsahuje čas v milisekundách od 1.1.1970. Správa je v uzle function prekonvertovaná na objekt s tromi parametrami. Objekt je v uzle debug vypísaný na konzolu. Na obrázku vidíte všetky tri atribúty src, asdate a asiso.
Zdrojový kód príkladu si môžete do svojho projektu vložiť pomocou funkcie Import
.
[ {"id":"be3232a0.de3ee","type":"tab","label":"Flow 1","disabled":false},{"id":"6e0c7bbd.5d5cac","type":"inject","z":"be3232a0.de3ee","name":"InjectedTimestamp","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":false,"onceDelay":"","x":197,"y":100,"wires":[["52d2378d.017e48"]]}, {"id":"2ee8df4.1d535a","type":"debug","z":"be3232a0.de3ee","name":"Debug","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":410,"y":138,"wires":[]}, {"id":"52d2378d.017e48","type":"function","z":"be3232a0.de3ee","name":"FuncTime","func":"var date = new Date(msg.payload);\nmsg.payload = {\n src: msg.payload,\n asdate: date.toString(),\n asiso: date.toISOString()\n};\nreturn msg;","outputs":1,"noerr":0,"x":313,"y":259,"wires":[["2ee8df4.1d535a"]]} ]
28.03.2019