node-redでのカスタムノードの作成Java ScriptファイルAPIの記述の詳細

freeFree Technical Resource

This content is free to read, suitable for basic learning and search traffic.

node-redでのカスタムノードの作成Java ScriptファイルAPIの記述の詳細

前の記事

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訪問する。

Put this resource to use in a real project?

Go to the Tool Center for message parsing, CRC verification and device debugging, or submit your requirements for selection and integration advice.

Engineer Membership

Turn this article into actionable debugging resources

After activation, you can use advanced message parsing, resource pack downloads, code examples, engineering cases and priority technical support, suitable for real project delivery.

Unlimited Advanced Tools
Resource & Code Packs
Complete Engineering Case Library
Priority Technical Support

Leave a Reply

Your email address will not be published. Required fields are marked *.