Nodo function
El nodo function permite escribir código JavaScript propio para cálculos complejos, transformaciones de datos y lógica de procesamiento de mensajes. Con él puede implementar lógica que los nodos estándar no admiten.
Configuración del nodo function

1. Name
Nombre del nodo.
El nombre se muestra en el área de trabajo y ayuda a identificar el nodo.
Si lo deja vacío, el nodo se llamará function.
Ejemplo:
- Nombre del nodo:
auth data
2. Function
Código JavaScript que se ejecuta para cada mensaje que pasa por el nodo.
Formato de entrada:
El código recibe el objeto msg, que representa el mensaje actual.
Formato de salida:
- Para pasar los datos al resto del flujo, el nodo debe devolver un objeto de mensaje (o un array de objetos).
- Si devuelve
null, el mensaje no continúa por el flujo.
Ejemplo:
// Incrementa el valor de msg.payload en 1
msg.payload = msg.payload + 1;
return msg;
3. Output Example (JSON)
Ejemplo, en formato JSON, de los datos que devuelve la función.
A partir de este ejemplo se construye el esquema de datos del nodo siguiente: sus campos aparecen en el bloque Input Schema de ese nodo. El editor coteja el ejemplo con el código de la función.
Los campos del ejemplo describen la raíz del objeto msg, no msg.payload, porque la función devuelve el mensaje completo.
El ejemplo también sirve como datos de prueba: si al pulsar el botón Execute en uno de los nodos siguientes (admin-api, http request) la función no pasa datos, se usa el valor de este campo.
Ejemplo:
{
"payload": {
"orderId": 123,
"status": "paid"
}
}
Ejemplos de uso
Ejemplo 1: Multiplicar el valor de msg.payload
msg.payload = msg.payload * 2;
return msg;
Descripción:
- Toma el valor de
msg.payload, lo multiplica por 2 y envía el objeto actualizado.
Ejemplo 2: Añadir una propiedad nueva
msg.newProperty = "Hello, World!";
return msg;
Descripción:
- Crea la propiedad
newPropertyy la añade al objetomsg.
Ejemplo 3: Procesamiento condicional de mensajes
if (msg.payload > 100) {
msg.alert = "High value detected!";
} else {
msg.alert = "Value is normal.";
}
return msg;
Descripción:
- Añade la propiedad
alertcon un aviso de texto que depende del valor demsg.payload.
Ejemplo 4: Filtrar mensajes
if (msg.payload > 50) {
return msg; // Dejar pasar el mensaje
}
return null; // Detener el mensaje
Descripción:
- Solo deja pasar los mensajes con
msg.payload > 50; los demás se detienen.