INASOFT 管理人のひとことフリーソフトダウンロードサイト「INASOFT」の管理人 矢吹拓也 が日々の「ひとこと」を語るページです。 2021年1月1日より、旧ブログ(blog.inasoft.org)からお引越ししました。 ・INASOFT Webサイト: https://www.inasoft.org/ ・管理人のふたこと(長文記事/寄稿文): https://www.inasoft.org/talk/ 2022年7月下旬より再び本業多忙化してきているため、更新頻度は落ちます。 [2022/7/24 19:32] Tweet ■さっそくNode-REDの書き方で躓いてしまった…。定数的な変数の保持と再利用ってどうすんだろ2018年 5月15日(火) 0:00:00 [さくらのブログから転記] |
RSS配信中 | ||||
昨日、Node-REDを覚えたので使いたいなぁ…なんてことを何気なく書きまして、色々実験していました。 現在、自宅内のRaspberry Piで行わせている処理の中に次のような流れのものがあります。 (cronで特定の日付日時で起動開始)
実際にはもう少し複雑なことをやっていますが、単純かして上のような流れです。これを、Node-RED化したい。 考えた流れは次の通り。
いきなり困ってしまった。2でmsgは[exec]の出力(標準出力か、標準エラー出力か、戻り値)になってしまっているので、それを3に渡すことはできない。 何かmsg.payloadを保存しておく方法は無いか…と考えて、globalというものがあることを知った。
と、これで上手くいきそう。 と思ったのだが、よくよく考えてみたら、この流れは最大3多重で発生する可能性がある。つまり、後から実行された流れがglobalに保存したmsgを上書きしてしまう。コレじゃダメだ。 調べてみると、uuidを設定してその値ごとに保存/復元する方法等、いくつか方法はあるらしいけど、なんだか元々のシェルで書く方法より難しくなりそうな気がしてきた。できれば、こういった技術は物事を単純化させるために使いたい。 うーん、こういう混み入った場合の書き方のベストプラクティスを収集しておく必要がありそうだなぁ。 と、これを書き終わった後で、入力のmsgをそのまま出力のmsgとして返す方法はないかな…と考えていて、functionを使えないかと考えた。 msgを一切いじらず、functionの最後にreturn msg;としてしまえば、入力時のmsg内の変数はそのまま次に引き渡される。 問題はfunctionの中で[exec]相当の自由な実行ができないか…だが、 settings.jsに
を追加。
でなんとかなるかな、と。 目次の表示: ブログではないので、コメント機能とトラックバック機能は提供していません。ご質問・ご意見等はメール、フィードバックまたはTwitter等からお願いします。いただいたご質問・ご意見などは、この「管理人のひとこと」の記事に追加、あるいは新規の記事にする形で一部または全文をそのまま、あるいは加工させていただいた上で、ご紹介させていただく場合があります。 当サイトでは掲載内容による不具合等に関する責任を持ちません。また、内容の正確性についての保証もありませんので、情報をご利用の際は、利用者の自己責任で確認をお願いします。 |
- 最近の更新 - |
||||
3212135 (+0046)[+0218] Copyright© 2010-2024 INASOFT |