mirror of
https://github.com/node-red/node-red.git
synced 2023-10-10 13:36:53 +02:00
91 lines
5.3 KiB
HTML
91 lines
5.3 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>Функция</b>, которая исполняется для сообщений, получаемых узлом.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Сообщения передаются в виде объекта JavaScript с именем <code>msg</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Обычно он имеет свойство <code>msg.payload</code>, содержащее тело сообщения.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Ожидается, что функция вернет объект сообщения (или несколько объектов сообщения), но может также ничего не возвращать, чтобы остановить поток.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Код настройки, выполняемый один раз при запуске сервера или при развертывании новой конфигурации потока, можно указать во вкладке <b>Настройка</b>. Кроме того, код очистки, выполняемый при остановке или повторном развертывании узла, можно указать во вкладке <b>Закрытие</b>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Если код настройки возвращает объект Promise, обработка входящих сообщений узлом начнется после его завершения.
|
|||
|
</p>
|
|||
|
|
|||
|
<h3>Подробности</h3>
|
|||
|
<p>
|
|||
|
Смотрите <a target="_blank" href="http://nodered.org/docs/writing-functions.html">онлайн-документацию</a> для получения дополнительной информации по написанию функций.
|
|||
|
</p>
|
|||
|
|
|||
|
<h4>Отправка сообщений</h4>
|
|||
|
<p>
|
|||
|
Функция может либо вернуть сообщения, которые она хочет передать следующим узлам в потоке, либо вызвать <code>node.send(сообщения)</code>.
|
|||
|
</p>
|
|||
|
<p>
|
|||
|
Она может вернуть/отправить:
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li>один объект сообщения - передается узлам, подключенным к первому выходу</li>
|
|||
|
<li>массив объектов сообщений - передается на узлы, подключенные к соответствующим выходам</li>
|
|||
|
</ul>
|
|||
|
<p>
|
|||
|
Примечание: код настройки выполняется во время инициализации узлов. Таким образом, если на вкладке настройки кода вызывается <code>node.send</code>, последующие узлы могут не получить это сообщение.
|
|||
|
</p>
|
|||
|
<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>
|
|||
|
Узел Catch также может использоваться для обработки ошибок. Чтобы узел Catch мог ловить сообщение об ошибке, передайте <code>msg</code> в качестве второго аргумента в <code>node.error</code>:
|
|||
|
</p>
|
|||
|
<pre>node.error("Ошибка", msg);</pre>
|
|||
|
|
|||
|
<h4>Доступ к информации об узле</h4>
|
|||
|
<p>
|
|||
|
В функциональном блоке к идентификатору и имени узла можно обращаться, используя следующие свойства:
|
|||
|
</p>
|
|||
|
<ul>
|
|||
|
<li><code>node.id</code> - идентификатор узла</li>
|
|||
|
<li><code>node.name</code> - имя узла</li>
|
|||
|
</ul>
|
|||
|
|
|||
|
<h4>Использование переменных среды</h4>
|
|||
|
<p>
|
|||
|
Доступ к переменным среды можно получить с помощью <code>env.get("MY_ENV_VAR")</code>.
|
|||
|
</p>
|
|||
|
</script>
|