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

Code Execution Node

Ejecutar código JavaScript personalizado en sus flujos de trabajo.

Descripción general

El Code Node le permite escribir JavaScript personalizado para transformar datos, realizar cálculos o implementar lógica personalizada que no está disponible en otros nodos.

Configuración

Campo Descripción Obligatorio
Name Un nombre descriptivo para este bloque de código No
Code Código JavaScript a ejecutar
Output Variable Nombre de la variable para almacenar el resultado

Escribir código

El editor de código admite JavaScript completo con resaltado de sintaxis. Su código debe devolver un valor que se almacenará en la variable de salida.

Acceder a variables

Use la sintaxis de plantilla para acceder a variables de nodos anteriores:

// Acceder a una variable simple
const data = {{api_response}};

// Acceder a propiedades anidadas
const userName = {{user.profile.name}};

// Usar en cálculos
const total = {{order.items}}.reduce((sum, item) => sum + item.price, 0);

Ejemplo: Transformar datos

// Acceder a variables de entrada
const users = {{user_list}};

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

// Devolver el resultado
return summary;

Ejemplo: Validación de datos

const input = {{form_data}};

// Validar campos obligatorios
if (!input.email || !input.name) {
  return { valid: false, error: 'Missing required fields' };
}

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

return { valid: true, data: input };

Insertar variables

Haga clic en el botón Insert Variable para insertar variables disponibles de nodos anteriores directamente en su código.

Limitaciones

  • Tiempo límite de ejecución: 30 segundos
  • Sin solicitudes HTTP externas (use el nodo HTTP en su lugar)
  • Sin acceso al sistema de archivos
  • Sin acceso a APIs del navegador

Buenas prácticas

  • Mantenga el código enfocado y simple
  • Use nombres de variables descriptivos
  • Agregue comentarios para lógica compleja
  • Maneje casos límite y errores
  • Devuelva datos estructurados para facilitar el acceso en nodos posteriores

Funciones disponibles y entorno

El entorno JavaScript está aislado (sandboxed) pero viene precargado con potentes funciones utilitarias para criptografía, transformación de datos y generación de identificadores únicos.

Criptografía y firmas

Función Descripción Ejemplo
signMessage(msg, [privKey]) Firma un mensaje usando Ed25519. Devuelve firma y claves. const res = signMessage("hello");
verifyMessage(msg, sig, pubKey) Verifica una firma Ed25519. Devuelve true/false. verifyMessage(msg, sig, pubKey)
encryptMessage(msg, [pubKey]) Cifra un mensaje usando X25519 + AES-GCM. const res = encryptMessage("secret");

JWT (JSON Web Tokens)

Función Descripción Ejemplo
jwtSign(payload, secret) Crea un string JWT firmado con HS256. const token = jwtSign({ sub: "123" }, "secret");
jwtVerify(token, secret) Verifica un token y devuelve el payload. Lanza error en caso de fallo. const claims = jwtVerify(token, "secret");
jwtDecode(token) Decodifica un token sin verificación. const claims = jwtDecode(token);

Utilidades

Función Descripción Ejemplo
uuid() Genera un UUID v4 aleatorio. const id = uuid();
md5(string) Devuelve hash MD5 (hex). md5("hello")
sha1(string) Devuelve hash SHA1 (hex). sha1("hello")
sha256(string) Devuelve hash SHA256 (hex). sha256("hello")
sha512(string) Devuelve hash SHA512 (hex). sha512("hello")

HMAC (Autenticación de mensajes basada en hash)

Función Descripción Ejemplo
hmacSHA1(data, secret) Calcula HMAC-SHA1. Devuelve string hexadecimal. hmacSHA1("message", "secret")
hmacSHA256(data, secret) Calcula HMAC-SHA256. Devuelve string hexadecimal. hmacSHA256("message", "secret")
hmacSHA512(data, secret) Calcula HMAC-SHA512. Devuelve string hexadecimal. hmacSHA512("message", "secret")

Use las funciones HMAC para verificar firmas de webhooks de servicios de terceros como Twilio, Stripe o GitHub.

// Ejemplo: Verificar una firma de webhook de Twilio
var dataString = url + sortedParams;
var computed = hmacSHA256(dataString, authToken);
// Comparar con el header de firma de la solicitud

Codificación

Función Descripción Ejemplo
base64Encode(str) Codifica string a Base64. base64Encode("user:pass")
base64Decode(str) Decodifica string Base64. base64Decode("dXNlcjpwYXNz")
hexEncode(str) Codifica string a Hex. hexEncode("hello")
hexDecode(str) Decodifica string Hex. hexDecode("68656c6c6f")
urlEncode(str) Codifica un string para URL. urlEncode("search & find")
urlDecode(str) Decodifica un string codificado para URL. urlDecode("search+%26+find")

Hashing de contraseñas (Bcrypt)

Función Descripción Ejemplo
bcryptHash(password) Genera hash de una contraseña usando Bcrypt (costo 10). const hash = bcryptHash("mypassword");
bcryptVerify(password, hash) Verifica una contraseña contra un hash. Devuelve true/false. bcryptVerify("mypassword", hash)

Entradas y variables

  • inputs: Acceso a entradas específicas del nodo definidas en la configuración del nodo.
  • variables: Acceso a variables globales del flujo.
    • variables._trigger: Contiene metadatos sobre el trigger del flujo de trabajo (método, IP, headers).
    • variables._rawBody: El cuerpo sin procesar de la solicitud del trigger (crucial para la verificación de firmas).
AI AssistantPowered by Ubex
Beta
Ask me anything about Ubex workflows, nodes, or the API.
~/

Hola 👋

¿Cómo podemos ayudarte hoy?