> ## Documentation Index
> Fetch the complete documentation index at: https://ai-kb.automationanywhere.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Toolkit de Ejecución de Node.js

> Optimizado para cargas de trabajo JavaScript/TypeScript

<img src="https://mintcdn.com/automationanywhere/RZhSFjsH74xtNG1p/img/agents-toolkits/20.jpg?fit=max&auto=format&n=RZhSFjsH74xtNG1p&q=85&s=64f44095dc6667a15703dade0c88be2a" alt="Toolkit de Ejecución de Código Node.js" width="643" height="279" data-path="img/agents-toolkits/20.jpg" />

**Cómo llegar:** Barra lateral principal > "Agentes" > Seleccione agente > Pestaña "Toolkits" > "Código y Desarrollo" > "Ejecución de Código Node.js"

1. Abra su agente > Pestaña "Toolkits" > Categoría "Código y Desarrollo" > Encuentre el toolkit "Ejecución de Código Node.js".
2. Haga clic en "Agregar al Agente" en Ejecución de Código Node.js, luego "Configurar". Haga clic en "Guardar".

## Toolkit de Ejecución de Código Node.js

Ejecute código Node.js/JavaScript en un entorno sandbox seguro con soporte de paquetes NPM y capacidades de gestión de archivos. Optimizado para cargas de trabajo JavaScript/TypeScript, integraciones API, procesamiento JSON, operaciones asíncronas y automatización web.

## Configuración del Toolkit Node.js

<img src="https://mintcdn.com/automationanywhere/1KMtYf5cm0nlHfow/img/agents-toolkits/nodejs-config.png?fit=max&auto=format&n=1KMtYf5cm0nlHfow&q=85&s=188db67aaea45e5298815e1988f449d7" alt="Panel de Configuración del Toolkit Node.js" width="1588" height="1143" data-path="img/agents-toolkits/nodejs-config.png" />

Configure el entorno sandbox de Node.js. Este toolkit permite al agente ejecutar código Node.js/JavaScript, subir archivos y gestionar archivos en el sandbox.

## Información de Seguridad

* El código Node.js se ejecuta en un entorno sandbox seguro y aislado
* Cada sesión de chat obtiene su propio sandbox dedicado con estado persistente
* Los archivos subidos al sandbox están aislados de otros usuarios y proyectos
* Los sandboxes se limpian automáticamente después de que la sesión termina

## Herramientas Disponibles (5/5)

**Ejecución de Código:**

* **Ejecutar Código**: Ejecute código Node.js/JavaScript en un entorno sandbox seguro

**Gestión de Archivos:**

* **Buscar Archivos**: Busque archivos en la base de conocimiento para subir al sandbox
* **Subir Archivo**: Suba archivos de la base de conocimiento al sandbox de Node.js
* **Listar Archivos**: Enumere todos los archivos actualmente disponibles en el sandbox
* **Crear URL de Descarga**: Cree URLs de descarga seguras para archivos en el sandbox

## Casos de Uso

* **Integración API**: Llame a REST APIs y maneje flujos OAuth.
* **Procesamiento JSON**: Analice y transforme estructuras de datos JSON.
* **Automatización Web**: Extraiga datos de sitios web y automatice formularios.
* **Transformación de Datos**: Convierta entre formatos (CSV, JSON, XML, YAML).

## Código de Ejemplo

A continuación se muestra un script de Node.js de ejemplo que demuestra el uso de paquetes NPM, verificación de dependencias y el patrón requerido de `module.exports` con una función de punto de entrada `main()`:

```javascript theme={null}
const _ = require("lodash");
const PACKAGES = ["lodash", "@google-cloud/bigquery", "axios"];

const isPackageInstalled = (packageName) => {
    try {
        require.resolve(packageName);
        return true;
    } catch (e) {
        return false;
    }
};

const getPackageVersion = (packageName) => {
    if (!isPackageInstalled(packageName)) return {
        isInstalled: false,
        version: null,
        message: "Package is not installed",
        package: packageName,
    };

    const version = require(`${packageName}/package.json`).version;
    return {
        isInstalled: true,
        version,
        message: `Package is installed with version ${version}`,
        package: packageName,
    };
};

const test = () => {
    return _.map(PACKAGES, (pkg) => getPackageVersion(pkg));
};

async function main(inputText, maxLength = 100, options = {}) {
    /**
     * Main function that will be executed
     *
     * @param {string} inputText - The text to process
     * @param {number} maxLength - Maximum length of output (default: 100)
     * @param {object} options - Additional processing options (default: {})
     */

    return { data: test() };
}

// The entry point function will be called with the arguments you define
module.exports = { main };
```

## Puntos Clave del Ejemplo

* **Punto de Entrada**: La función `main()` es el punto de entrada, exportado a través de `module.exports = { main }`.
* **Paquetes NPM**: Use `require()` para importar paquetes instalados (por ejemplo, lodash, axios, @google-cloud/bigquery).
* **Verificación de Paquetes**: Use `require.resolve()` para verificar si un paquete está disponible en el sandbox.
* **Soporte Asíncrono**: La función principal puede ser asíncrona para manejar llamadas API y operaciones de archivos.
* **Parámetros**: Defina parámetros con valores predeterminados (por ejemplo, `maxLength = 100`, `options = {}`) para entrada flexible.
* **Formato de Retorno**: Devuelva resultados como un objeto (por ejemplo, `{ data: ... }`) para salida estructurada.
