Негізгі мазмұнға өту

switch түйіні

switch түйіні хабарламаларды олардың мазмұнына, құрылымына немесе басқа шарттарға байланысты бағыттау үшін арналған. Бұл ағындарда шартты логиканы құру үшін қуатты құрал.


switch түйінінің параметрлері

IMG2

1. Атау

Түйіннің атын көрсету үшін өріс.
Атау жұмыс аймағында көрсетіледі және түйінді оңай анықтауға көмектеседі.
Егер бос қалдырылса, түйін inject деп аталады.

Мысал:

  • Түйіннің атауы: check status

2. Сипаттама

msg хабарламасының объектісінің қандай қасиеті шарттарды тексеру үшін пайдаланылатынын көрсетеді.

Мысал:

  • msg.payload
  • msg.topic
  • msg.device.temperature

Сондай-ақ, орташа қасиеттер (flow, global) және JSONata өрнектері ( $ -дан басталады) қолдау көрсетіледі.


3. Тексеру

  • Бірінші сәйкестікке дейін тексеру (Әдепкі):
    Хабарлама тек шартқа сәйкес келетін бірінші шығуға жіберіледі.
  • Барлық сәйкестіктерді тексеру:
    Хабарлама бірнеше шығуға жіберілуі мүмкін, егер бірнеше шартқа сәйкес келсе.

3. Ережелер

Бағыттау логикасын анықтайды. Әр шарт түйіннің бір шығуымен байланысты. Хабарлама бірінші сәйкес шығуға жіберіледі.

Қол жетімді шарттар түрлері:

  • ==: Мәннің теңдігін тексереді.
  • !=: Теңсіздікті тексереді.
  • <: Мәннің кіші екенін тексереді.
  • <=: Мәннің кіші немесе тең екенін тексереді.
  • >: Мәннің үлкен екенін тексереді.
  • >=: Мәннің үлкен немесе тең екенін тексереді.
  • has key: Объектінің көрсетілген кілтті қамтитынын тексереді.
  • between: Мәннің көрсетілген диапазонда (қосқанда) екенін тексереді.
  • contains: Жол немесе массивтің көрсетілген мәнді қамтитынын тексереді.
  • matches regex: Жолдың регулярлы өрнекке сәйкес келетінін тексереді.
  • equals true: Мәннің true-ға тең екенін тексереді.
  • equals false: Мәннің false-ға тең екенін тексереді.
  • equals null: Мәннің null-ға тең екенін тексереді.
  • not equals null: Мәннің null-ға тең еместігін тексереді.
  • is of type: Мәннің көрсетілген типке (мысалы, string, number, boolean) сәйкес келетінін тексереді.
  • empty: Жол, массив немесе объектінің бос екенін тексереді.
  • not empty: Жол, массив немесе объектінің бос еместігін тексереді.
  • else: Егер басқа шарттардың ешқайсысы орындалмаса, орындалады.

Мысал:

  • msg.payload 50-дан үлкен

Кіріс деректері

Түйін msg объектісін қабылдайды.
Қандай қасиеттер тексерілетіні Сипаттама өрісінде анықталады.


Шығыс деректері

Түйін msg хабарламасын берілген шартқа сәйкес шығуға жібереді.
Егер хабарлама ешбір шартқа сәйкес келмесе, ол шығуға жіберілмейді.


Пайдалану мысалдары

Мысал 1: Температура деректерін сүзу

Міндет:
Деректерді үш категорияға бөлу: төмен, қалыпты және жоғары температура.

Ағын:

[inject] ---> [function] ---> [switch] ---> [debug (low temp)]
| [debug (normal temp)]
| [debug (high temp)]

switch түйінінің параметрлері:

  • Сипаттама: msg.payload
  • Шарттар:
    1. is less than 10 → Шығыс 1
    2. is between 10 and 30 → Шығыс 2
    3. is greater than 30 → Шығыс 3

Нәтиже:
Температуралар олардың мәніне байланысты бағытталады.