> ## 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 Execução Node.js

> Otimizado para cargas de trabalho 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 Execução de Código Node.js" width="643" height="279" data-path="img/agents-toolkits/20.jpg" />

**Como acessar:** Barra lateral principal > "Agents" > Selecione o agente > aba "Toolkits" > "Code & Development" > "Node.js Code Execution"

1. Abra seu agente > aba "Toolkits" > categoria "Code & Development" > Encontre o toolkit "Node.js Code Execution".
2. Clique em "Add to Agent" no Node.js Code Execution e depois em "Configure". Clique em "Save".

## Toolkit de Execução Node.js

Execute código Node.js/JavaScript em um ambiente sandbox seguro com suporte a pacotes NPM e capacidades de gerenciamento de arquivos. Otimizado para cargas de trabalho JavaScript/TypeScript, integrações de API, processamento JSON, operações assíncronas e automação web.

## Configuração do 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="Painel de Configuração do Toolkit Node.js" width="1588" height="1143" data-path="img/agents-toolkits/nodejs-config.png" />

Configure o ambiente sandbox do Node.js. Este toolkit permite que o agente execute código Node.js/JavaScript, faça upload de arquivos e gerencie arquivos no sandbox.

## Informações de Segurança

* O código Node.js é executado em um ambiente sandbox seguro e isolado
* Cada sessão de chat recebe seu próprio sandbox dedicado com estado persistente
* Os arquivos enviados ao sandbox são isolados de outros usuários e projetos
* Os sandboxes são limpos automaticamente após o término da sessão

## Ferramentas Disponíveis (5/5)

**Execução de Código:**

* **Execute Code**: Execute código Node.js/JavaScript em um ambiente sandbox seguro

**Gerenciamento de Arquivos:**

* **Search Files**: Pesquise arquivos na base de conhecimento para enviar ao sandbox
* **Upload File**: Faça upload de arquivos da base de conhecimento para o sandbox Node.js
* **List Files**: Liste todos os arquivos atualmente disponíveis no sandbox
* **Create Download URL**: Crie URLs de download seguras para arquivos no sandbox

## Casos de Uso

* **Integração de API**: Chame APIs REST e gerencie fluxos OAuth.
* **Processamento JSON**: Analise e transforme estruturas de dados JSON.
* **Automação Web**: Faça scraping de sites e automatize formulários.
* **Transformação de Dados**: Converta entre formatos (CSV, JSON, XML, YAML).

## Exemplo de Código

Abaixo está um exemplo de script Node.js demonstrando o uso de pacotes NPM, verificação de dependências e o padrão `module.exports` necessário com uma função de ponto 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 };
```

## Pontos-Chave do Exemplo

* **Ponto de Entrada**: A função `main()` é o ponto de entrada, exportada via `module.exports = { main }`.
* **Pacotes NPM**: Use `require()` para importar pacotes instalados (por exemplo, lodash, axios, @google-cloud/bigquery).
* **Verificação de Pacotes**: Use `require.resolve()` para verificar se um pacote está disponível no sandbox.
* **Suporte Assíncrono**: A função principal pode ser assíncrona para tratar chamadas de API e operações de arquivo.
* **Parâmetros**: Defina parâmetros com valores padrão (por exemplo, `maxLength = 100`, `options = {}`) para entrada flexível.
* **Formato de Retorno**: Retorne resultados como um objeto (por exemplo, `{ data: ... }`) para saída estruturada.
