Node-RED:Библиотеки/node-red/Switch: различия между версиями
Myagkij (обсуждение | вклад) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{Node-RED/Панель перехода}} | {{Node-RED/Панель перехода}} | ||
{{Перевод от Сubewriter}} | {{Перевод от Сubewriter}} | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
Строка 51: | Строка 50: | ||
[[Категория:Нода модуля node-red]] | [[Категория:Нода модуля node-red]] | ||
[[Категория:Нода node-red]] | [[Категория:Нода node-red]] | ||
Текущая версия от 11:11, 24 сентября 2023
Нода «Switch»
Направляет сообщения по нужным маршрутам, исходя из их позиции в серии сообщений или значений.
Подробное описание
Когда сообщение прибывает в ноду «Switch», она сверяется с заданными внутри нее правилами, а затем направляет это сообщение в порт, который соответствует всем заданным правилам.
Опционально ноду «Switch» можно настроить так, чтобы она перестала сверяться с правилами после самого первого совпадения.
Правило можно применить к отдельному свойству сообщения, свойству из глобального контекста, свойству из контекста потока или результату JSONata-выражения.
Правила
Есть 4 типа правил:
- Правила «value rules» – применяются относительно заданного свойства
- Правила «sequence rules» – применяются относительно серии сообщений (например, сгенерированных нодой «Split»)
- Правило «JSONata exp» – здесь можно задать JSONata-выражение, которое будет применено ко всему сообщению. Если выражение вернет «true», это будет значить, что совпадение есть
- Правило «otherwise» – на случай, если ни одно из других правил не сработает
Примечания
Правила «is true», «is false» и «is null» сравнивают только относительно своих типов данных. То есть они, выполняя сравнение, не выполняют конвертирования данных.
Правило «is empty» сработает на строках, массивах и буферах с длиной «0» или на объектах без свойств. На значениях «null» и «undefined» оно не сработает.
Управление сериями сообщений
По умолчанию нода «Switch» не модифицирует свойство «msg.parts», которое есть у сообщений, являющихся частью серии сообщений.
Но если вы хотите сгенерировать новые серии сообщений для каждого сработавшего правила, поставьте галочку рядом с пунктом «recreate message sequences» (он находится в самом низу меню редактирования ноды «Switch»). В этом режиме нода «Switch» будет собирать сообщения, прошедшие проверку, в буфер, а затем, когда их наберется достаточно, отправит эту серию сообщений дальше в поток. То, сколько сообщений может быть в этом буфере, задается в настройке среды выполнения «nodeMessageBufferMaxLength».
См.также
Внешние ссылки