前の記事
node-redでは、必要なノードが見つからない場合は、ニーズに合わせてノードをカスタマイズできます。前回の記事では、大文字小文字の変換を例に、ノードの作成方法を簡単に説明しました。例は簡単ですが、カスタムノードを作成する手順とノードの構成要素を理解することができます。この記事では、カスタムノードのjsファイルに焦点を当てます。APIやその他の機能について詳しく説明します。以前の記事では、ノードのjsファイルは、設定パラメータの課金、ビジネスロジックの処理、データの下流への送信に使用されるノードのコアファイルであることがわかりました。下を一緒に見てみましょう。
カスタム·ノードJavaScriptファイル
ノードビルダー Node Builder
すべてのノードはコンストラクタによって生成された関数であり、新しいインスタンスが作成される。この機能は、実行時に登録され、
この機能は、設定オブジェクトを設定することでFlow Editorにexistenceします。
この関数では、最初に呼び出します。RED.nodes.createNode機能をシリアル化し、他のノードで共有する関数。この後、
ビジネスコードを書くことができます。
以下の通り
情報の受領
1つ登録する。inputイベントは、ストリーム全体の上流ノードからメッセージを受信します。イベントを登録すると、イベントのコールバック関数にmsgとsendの2つのパラメータがあり、msgは上流から渡されたデータです。sendは下流に送信される関数です。3つ目の関数doneは、ノードがビジネスロジック処理を完了した後に呼び出される関数です。
例:例
function SampleNode(config) {
RED.nodes.createNode(this,config);
// node-specific code goes here
}
RED.nodes.registerType("sample",SampleNode);情報の受領
1つ登録する。inputイベントは、ストリーム全体の上流ノードからメッセージを受信します。イベントを登録すると、イベントのコールバック関数にmsgとsendの2つのパラメータがあり、msgは上流から渡されたデータです。sendは下流に送信される関数です。3つ目の関数doneは、ノードがビジネスロジック処理を完了した後に呼び出される関数です。
例:例
this.on('input', function(msg, send, done) {
// do something with 'msg'
// Once finished, call 'done'.
// This call is wrapped in a check that 'done' exists
// so the node will work in earlier versions of Node-RED (<1.0)
if (done) {
done();
}
});メッセージを送る。
カスタムノードで下流に情報を送信するのは簡単です。
以下のようにsend関数を使うだけです。
var msg = { payload:"hi" }
this.send(msg);ノードが入力イベントで下流に情報を送信したい場合は、そうすることができます。
let node = this;
this.on('input', function(msg, send, done) {
// For maximum backwards compatibility, check that send exists.
// If this node is installed in Node-RED 0.x, it will need to
// fallback to using `node.send`
send = send || function() { node.send.apply(node,arguments) }
msg.payload = "hi";
send(msg);
if (done) {
done();
}
});入力イベントのコールバック関数には3つのパラメータがあります。1つ目は受信した情報、2つ目は送信関数です。
3つ目はDone機能です。使用シナリオは異なります。
複数のパラメータを下流に入力する場合は、このように記述できます。
this.send([ msg1 , msg2 ]);
this.send([ [msgA1 , msgA2 , msgA3] , msg2 ]);日記イベント一覧
カスタムノードにログを表示するには、thisの下でlog、warnなどのメソッドを呼び出すだけです。ログはコンソールに表示されます。
this.log("Something happened");
this.warn("Something happened you should know about");
this.error("Oh no, something bad happened");
// Since Node-RED 0.17
this.trace("Log some internal detail not needed for normal operation");
this.debug("Log something more details for debugging the node's behaviour");ステータスの設定
一部のノードでは、正常または間違った設定を示すステータス表示があります。
このステータスはjsファイルでも設定され、statusを呼び出すだけで済みます。
以下の通り
this.status({fill:"red",shape:"ring",text:"disconnected"});fillの色
shape状態のアイコン
textステータスのテキスト
ノード設定のカスタマイズ
ノードを作成するときに、ノードのプロパティを設定ファイルに設定したい場合は、これを行うことができます。
あなたのタイプがあれば、fizz-nodeそして、それらを取る。color 設定ファイルに入れて、設定ファイルで設定する必要があります。fizzNodeColor。
使用する際にはRED.settings.fizzNodeColor訪問する。
Leave a Reply