Ana içeriğe geç

Özel Fonksiyon Node'u

Özel Fonksiyon node'u, akışın içinde kendi JavaScript'inizi çalıştırır. Diğer node'ların kapsamadığı mantık için kullanın — veriyi yeniden şekillendirme, bir hesaplama yapma, metin biçimlendirme veya bir servisi özel bir şekilde çağırma. Fonksiyon, ona geçirdiğiniz girdileri alır ve akışın geri kalanının kullanabileceği bir değer döndürmelidir.

Bir akışa ekleme

Canvas üzerine bir Özel Fonksiyon node'u sürükleyin ve önceki node'u ona bağlayın. Herhangi bir girdi değişkeni tanımlayın, ardından JavaScript gövdesini yazın.

Kod editöründe bir JavaScript fonksiyonu bulunan Özel Fonksiyon node'u

Girdiler

ParametreAçıklamaZorunlu
Giriş DeğişkenleriFonksiyonunuza geçirilen adlandırılmış değerler. Her birinin bir değişken adı ve bir değeri (bir flow değişkeni olabilir) vardır. Kodun içinde bunları $ önekiyle okursunuz — örn. $foo.Hayır
Javascript FonksiyonuÇalıştırılacak kod. Flowera'da mevcut olan kütüphaneleri kullanabilir ve bir dize döndürmelidir (veya bir dizeye dönüşen bir nesne).Evet
Akış DeğişkenleriBu node'un çalıştıktan sonra güncellediği durum anahtarları, her biri bir değer ve isteğe bağlı bir "block empty updates" koruması ile.Hayır
Çıktıyı Sohbette GösterBu node'un çıktısının sohbet geçmişinde görünüp görünmeyeceği. Varsayılan olarak kapalı.Hayır

Çıktılar

Özel Fonksiyon node'unun tek bir çıktısı vardır: fonksiyonunuzun döndürdüğü değer. Bir sonraki bağlı node'a akar ve daha sonra kullanmak üzere bir Flow Variable'a yakalanabilir.

Fonksiyonu yazma

Kodunuz bir async fonksiyonunun gövdesi olarak çalışır, bu nedenle await kullanabilirsiniz. Birkaç şey otomatik olarak kullanılabilir:

  • Giriş Değişkenleri — her birine $ önekiyle referans verin. foo adlı bir girdi $foo olarak okunur.
  • Flow config$flow.sessionId, $flow.chatId, $flow.chatflowId, $flow.input ve $flow.state.
  • Custom Değişkenler — çalışma alanı değişkenleriniz için $vars.<name>.
  • Libraries — Flowera ile paketlenmiş kütüphaneler require edilebilir, örn. const fetch = require('node-fetch').

Fonksiyon bir değer döndürmelidir (bir dize veya bir dizeye dönüşen bir şey). Hiçbir şey döndürmezse, bir sonraki node boş bir sonuç alır.

Örnekler

Bir ismi biçimlendirin:

// Input Variable: rawName = {{$flow.state.name}}
return $rawName.trim().replace(/\b\w/g, c => c.toUpperCase());

Durumdan bir özet dizesi oluşturun:

return `Order ${$flow.state.orderId} for ${$flow.state.name} is confirmed.`;

Harici bir API çağırın ve metnini döndürün:

const fetch = require('node-fetch');
try {
const res = await fetch('https://api.example.com/status');
return await res.text();
} catch (error) {
console.error(error);
return '';
}

Bir değer döndüren yapılandırılmış Özel Fonksiyon node&#39;u

İpuçları

  • Her zaman bir şey döndürün. return olmadan sonuna ulaşan bir fonksiyon, bir sonraki node'a boş bir değer verir.
  • Girdileri $ önekiyle ($foo) okuyun ve flow durumuna $flow.state.<key> ile referans verin.
  • Oluştururken console.log / console.error kullanın — çıktı yürütme izinde görünür.
  • Basit bir web isteği için, HTTP node'u fetch'i elle yazmaktan daha basittir.

İlgili