Ana içeriğe geç

function Düğümü

function düğümü, karmaşık hesaplamalar, veri dönüşümleri ve mesaj işleme mantığı gerçekleştirmek için özel JavaScript kodu yazmak amacıyla kullanılır. Standart düğümler tarafından desteklenmeyen mantığı uygulamak için esneklik sağlar.


function Düğüm Ayarları​

IMG2

1. İsim​

Düğümün adını belirtmek için bir alan.
İsim, çalışma alanında görüntülenir ve düğümü kolayca tanımlamaya yardımcı olur.
Boş bırakılırsa, düğüm function olarak adlandırılacaktır.

Örnek:

  • Düğüm adı: auth data

2. Fonksiyon​

Bu alana, düğümden geçen her mesaj için çalıştırılacak JavaScript kodu girilir.

Girdi Verileri Formatı:​

Kod, mevcut mesajı temsil eden msg nesnesini alır.

Dönen Veriler Formatı:​

  • Düğüm, verileri akışta daha ileriye iletmek için bir mesaj nesnesi (veya nesne dizisi) döndürmelidir.
  • null dönerse, mesaj daha ileriye iletilmeyecektir.

Örnek:

// msg.payload değerini 1 artırma
msg.payload = msg.payload + 1;
return msg;

3. Çıktı Örneği (JSON)​

Fonksiyonun döndürdüğü verilerin JSON formatındaki örneği.
Bu örnek, bir sonraki düğüm için veri şemasını oluşturur — alanları, bir sonraki düğümün Girdi Şeması bloğunda görünür. Editör, örneği fonksiyon kodu ile karşılaştırır.

Örnek alanları, msg.payload değil, msg nesnesinin kökünü tanımlar: fonksiyon, mesajı tamamen döndürür.

Örnek ayrıca test verileri olarak da hizmet eder: Eğer Execute butonuna basıldığında bir sonraki düğümlerden birinde (admin-api, http request) fonksiyon verileri iletmezse, bu alanın değeri kullanılır.

Örnek:

{
"payload": {
"orderId": 123,
"status": "paid"
}
}

Kullanım Örnekleri​

Örnek 1: msg.payload değerini çarpma​

msg.payload = msg.payload * 2;
return msg;

Açıklama:

  • msg.payload değerini alır, 2 ile çarpar ve güncellenmiş nesneyi gönderir.

Örnek 2: Yeni bir özellik ekleme​

msg.newProperty = "Merhaba, Dünya!";
return msg;

Açıklama:

  • newProperty adında yeni bir özellik oluşturur ve bunu msg nesnesine ekler.

Örnek 3: Mesajları koşullu işleme​

if (msg.payload > 100) {
msg.alert = "Yüksek değer tespit edildi!";
} else {
msg.alert = "Değer normal.";
}
return msg;

Açıklama:

  • msg.payload değerine bağlı olarak bir uyarı metni ile alert özelliğini ekler.

Örnek 4: Mesajları filtreleme​

if (msg.payload > 50) {
return msg; // Mesajı daha ileriye ilet
}
return null; // Mesajı durdur

Açıklama:

  • Sadece msg.payload > 50 olan mesajları geçirir, diğerleri durdurulur.