Documentation is being updated. Some sections may not reflect the latest features.

Code Execution Node

Executați cod JavaScript personalizat în fluxurile de lucru.

Prezentare generală

Nodul Code vă permite să scrieți JavaScript personalizat pentru a transforma date, a efectua calcule sau a implementa logică personalizată care nu este disponibilă în alte noduri.

Configurare

Câmp Descriere Obligatoriu
Name Un nume descriptiv pentru acest bloc de cod Nu
Code Codul JavaScript de executat Da
Output Variable Numele variabilei pentru stocarea rezultatului Da

Scrierea codului

Editorul de cod suportă JavaScript complet cu evidențiere de sintaxă. Codul trebuie să returneze o valoare care va fi stocată în variabila de ieșire.

Accesarea variabilelor

Folosiți sintaxa de șablon pentru a accesa variabile din nodurile anterioare:

// Accesarea unei variabile simple
const data = {{api_response}};

// Accesarea proprietăților imbricate
const userName = {{user.profile.name}};

// Utilizare în calcule
const total = {{order.items}}.reduce((sum, item) => sum + item.price, 0);

Exemplu: Transformarea datelor

// Accesarea variabilelor de intrare
const users = {{user_list}};

// Transformarea datelor
const activeUsers = users.filter(u => u.active);
const summary = {
  total: users.length,
  active: activeUsers.length,
  emails: activeUsers.map(u => u.email)
};

// Returnarea rezultatului
return summary;

Exemplu: Validarea datelor

const input = {{form_data}};

// Validarea câmpurilor obligatorii
if (!input.email || !input.name) {
  return { valid: false, error: 'Missing required fields' };
}

// Validarea formatului de email
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
if (!emailRegex.test(input.email)) {
  return { valid: false, error: 'Invalid email format' };
}

return { valid: true, data: input };

Inserarea variabilelor

Faceți clic pe butonul Insert Variable pentru a insera variabile disponibile din nodurile anterioare direct în cod.

Limitări

  • Limită de timp de execuție: 30 de secunde
  • Fără cereri HTTP externe (folosiți în schimb nodul HTTP)
  • Fără acces la sistemul de fișiere
  • Fără acces la API-urile browserului

Bune practici

  • Mențineți codul concentrat și simplu
  • Folosiți nume descriptive de variabile
  • Adăugați comentarii pentru logica complexă
  • Gestionați cazurile limită și erorile
  • Returnați date structurate pentru acces ușor în nodurile ulterioare

Funcții disponibile și mediu

Mediul JavaScript este izolat (sandboxed), dar vine preîncărcat cu funcții utilitare puternice pentru criptografie, transformarea datelor și generarea de identificatori unici.

Criptografie și semnături

Funcție Descriere Exemplu
signMessage(msg, [privKey]) Semnează un mesaj folosind Ed25519. Returnează semnătura și cheile. const res = signMessage("hello");
verifyMessage(msg, sig, pubKey) Verifică o semnătură Ed25519. Returnează true/false. verifyMessage(msg, sig, pubKey)
encryptMessage(msg, [pubKey]) Criptează un mesaj folosind X25519 + AES-GCM. const res = encryptMessage("secret");

JWT (JSON Web Tokens)

Funcție Descriere Exemplu
jwtSign(payload, secret) Creează un string JWT semnat cu HS256. const token = jwtSign({ sub: "123" }, "secret");
jwtVerify(token, secret) Verifică un token și returnează payload-ul. Aruncă eroare în caz de eșec. const claims = jwtVerify(token, "secret");
jwtDecode(token) Decodifică un token fără verificare. const claims = jwtDecode(token);

Utilități

Funcție Descriere Exemplu
uuid() Generează un UUID v4 aleatoriu. const id = uuid();
md5(string) Returnează hash MD5 (hex). md5("hello")
sha1(string) Returnează hash SHA1 (hex). sha1("hello")
sha256(string) Returnează hash SHA256 (hex). sha256("hello")
sha512(string) Returnează hash SHA512 (hex). sha512("hello")

HMAC (Autentificarea mesajelor bazată pe hash)

Funcție Descriere Exemplu
hmacSHA1(data, secret) Calculează HMAC-SHA1. Returnează string hexadecimal. hmacSHA1("message", "secret")
hmacSHA256(data, secret) Calculează HMAC-SHA256. Returnează string hexadecimal. hmacSHA256("message", "secret")
hmacSHA512(data, secret) Calculează HMAC-SHA512. Returnează string hexadecimal. hmacSHA512("message", "secret")

Folosiți funcțiile HMAC pentru a verifica semnăturile webhook de la servicii terțe precum Twilio, Stripe sau GitHub.

// Exemplu: Verificarea unei semnături webhook Twilio
var dataString = url + sortedParams;
var computed = hmacSHA256(dataString, authToken);
// Comparați cu header-ul de semnătură din cerere

Codificare

Funcție Descriere Exemplu
base64Encode(str) Codifică string în Base64. base64Encode("user:pass")
base64Decode(str) Decodifică string Base64. base64Decode("dXNlcjpwYXNz")
hexEncode(str) Codifică string în Hex. hexEncode("hello")
hexDecode(str) Decodifică string Hex. hexDecode("68656c6c6f")
urlEncode(str) Codifică un string pentru URL. urlEncode("search & find")
urlDecode(str) Decodifică un string codificat URL. urlDecode("search+%26+find")

Hashing parole (Bcrypt)

Funcție Descriere Exemplu
bcryptHash(password) Generează hash pentru o parolă folosind Bcrypt (cost 10). const hash = bcryptHash("mypassword");
bcryptVerify(password, hash) Verifică o parolă față de un hash. Returnează true/false. bcryptVerify("mypassword", hash)

Intrări și variabile

  • inputs: Acces la intrările specifice nodului definite în configurarea nodului.
  • variables: Acces la variabilele globale ale fluxului.
    • variables._trigger: Conține metadate despre trigger-ul fluxului de lucru (metodă, IP, headere).
    • variables._rawBody: Corpul brut al cererii trigger-ului (crucial pentru verificarea semnăturilor).
AI AssistantPowered by Ubex
Beta
Ask me anything about Ubex workflows, nodes, or the API.
~/

Salut 👋

Cu ce te putem ajuta astăzi?