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).