20
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Node-REDにおけるCSSファイルとJavascriptファイルの読み込み方

Posted at

#背景
Node-RED、いじってますか。
最近ハッカソンなどで超高速開発をする機会が増え、Node−RED on IBM Cloudを触ることが格段に多くなりました。

APIサーバーとしても非常に使えるツールですが、フロント部分でもかなり優秀です。

しかし、JavascriptとCSSの適用方法のベストプラクティスがよく分からないという声をよく聞きます。
これまで私は以下2つの方法を取っていました。

###ファイルとしてサーバーに配置し、パスを指定して呼び出す
だめです。
クラウドの場合、ローカルで変更したファイルはデプロイによる反映が必要のため、
数文字の変更でも1~2分のロスが発生してしまいます。

###HTMLに直接記述###
だめです。
NodeREDの場合デプロイが一瞬なので、この方法を取りがちですが、やはり可読性が非常に低くなります。
リッチなWebページの場合特に記述が多くなりますので、スクロールで該当箇所までたどり着くのが困難になってきます。

#本題
私が考えるベストプラクティスは以下です。

スクリーンショット 2018-08-08 14.49.05.png

HTTP inノードから直接HTMLを記述したTemplateノードへ繋がず、複数の別Templateノードをはさみます。
上図のJavascriptノードを開くとこんな感じです。

スクリーンショット 2018-08-08 14.51.04.png
Templateノードには「設定先」という項目があり、ここで指定した名前のオブジェクトに、記述内容が文字列として格納されます。

同様にCSSノードを開くとこんな感じです。
スクリーンショット 2018-08-08 14.52.34.png

各オブジェクトに格納したスクリプトとCSSをHTMLを記述したTemplateノードで呼び出します
スクリーンショット 2018-08-08 14.54.44.png
波括弧でmsgオブジェクト配下のデータを読み込むことができますが、このとき必ず「三重」波括弧で記述してください。
理由はいろいろありますが、二重だと勝手に特殊文字などに変換されてうまくいかないです。

#おわりに
いかがでしょうか。
これであなたもNode-REDマスターに3歩近づきました。
また小ネタあれば投稿します。

※もっと良い方法あればコメントどしどしお願いします。

20
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?