mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
53 lines
3.5 KiB
HTML
53 lines
3.5 KiB
HTML
<!--
|
||
Copyright JS Foundation and other contributors, http://js.foundation
|
||
|
||
Licensed under the Apache License, Version 2.0 (the "License");
|
||
you may not use this file except in compliance with the License.
|
||
You may obtain a copy of the License at
|
||
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
Unless required by applicable law or agreed to in writing, software
|
||
distributed under the License is distributed on an "AS IS" BASIS,
|
||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
-->
|
||
|
||
<script type="text/html" data-help-name="function">
|
||
<p>受信メッセージに対して処理を行うJavaScriptコード(関数の本体)を<b>Function</b>タブに定義します。</p>
|
||
<p>入力メッセージは<code>msg</code>という名称のJavaScriptオブジェクトで受け渡されます。</p>
|
||
<p><code>msg</code>オブジェクトは<code>msg.payload</code>プロパティにメッセージ本体を保持するのが慣例です。</p>
|
||
<p>通常、コードはメッセージオブジェクト(もしくは複数のメッセージオブジェクト)を返却します。後続フローの実行を停止したい場合は、オブジェクトを返却しなくてもかまいません。</p>
|
||
<p>デプロイ前に実行すべき初期化コードを<b>初期化処理</b>タブに、フローの停止時に実行すべき終了処理コードを<b>終了処理</b>タブに指定できます。</p>
|
||
<h3>詳細</h3>
|
||
<p>コードの書き方の詳細については、<a target="_blank" href="http://nodered.org/docs/writing-functions.html">オンラインドキュメント</a>を参照してください。</p>
|
||
<h4>メッセージの送信</h4>
|
||
<p>フロー内の次ノードにメッセージを渡すためには、メッセージを返却するか<code>node.send(messages)</code>を呼び出します。</p>
|
||
<p>返却/sendの対象は次のとおりです:</p>
|
||
<ul>
|
||
<li>単一メッセージオブジェクト - 最初の出力に接続されたノードに渡されます</li>
|
||
<li>メッセージオブジェクトの配列 - 対応する出力に接続されたノードに渡されます</li>
|
||
</ul>
|
||
<p>配列要素が配列の場合には、複数のメッセージを対応する出力に送出します。</p>
|
||
<p>返却方法が単一値か配列要素かにかかわらず、返却値がnullの場合メッセージの送出は行いません。</p>
|
||
<h4>ログ出力とエラー処理</h4>
|
||
<p>ログ情報の出力、エラー出力を行うには以下の関数を用います:</p>
|
||
<ul>
|
||
<li><code>node.log("ログメッセージ")</code></li>
|
||
<li><code>node.warn("警告")</code></li>
|
||
<li><code>node.error("エラー")</code></li>
|
||
</ul>
|
||
</p>
|
||
<p>catchノードを用いてエラー処理が可能です。catchノードで処理させるためには、<code>msg</code>を<code>node.error</code>の第二引数として渡します:</p>
|
||
<pre>node.error("エラー",msg);</pre>
|
||
<h4>ノード情報の参照</h4>
|
||
<p>コード中ではノードのIDおよび名前を以下のプロパティで参照できます:</p>
|
||
<ul>
|
||
<li><code>node.id</code> - ノードのID</li>
|
||
<li><code>node.name</code> - ノードの名称</li>
|
||
</ul>
|
||
<h4>環境変数の利用</h4>
|
||
<p>環境変数は<code>env.get("MY_ENV_VAR")</code>により参照できます。</p>
|
||
</script>
|