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

# Boîte à outils d'exécution Node.js

> Optimisé pour les charges de travail 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="Node.js Code Execution Toolkit" width="643" height="279" data-path="img/agents-toolkits/20.jpg" />

**Comment y accéder :** Barre latérale principale > « Agents » > Sélectionner un agent > Onglet « Toolkits » > « Code & Development » > « Node.js Code Execution »

1. Ouvrez votre agent > Onglet « Toolkits » > Catégorie « Code & Development » > Recherchez la boîte à outils « Node.js Code Execution ».
2. Cliquez sur « Add to Agent » pour Node.js Code Execution, puis sur « Configure ». Cliquez sur « Save ».

## Boîte à outils d'exécution Node.js

Exécutez du code Node.js/JavaScript dans un environnement sandbox sécurisé avec prise en charge des packages NPM et des fonctionnalités de gestion de fichiers. Optimisé pour les charges de travail JavaScript/TypeScript, les intégrations API, le traitement JSON, les opérations asynchrones et l'automatisation web.

## Configuration de la boîte à outils 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="Panneau de configuration de la boîte à outils Node.js" width="1588" height="1143" data-path="img/agents-toolkits/nodejs-config.png" />

Configurez l'environnement sandbox Node.js. Cette boîte à outils permet à l'agent d'exécuter du code Node.js/JavaScript, de télécharger des fichiers et de gérer des fichiers dans le sandbox.

## Informations de sécurité

* Le code Node.js s'exécute dans un environnement sandbox sécurisé et isolé
* Chaque session de chat dispose de son propre sandbox dédié avec un état persistant
* Les fichiers téléchargés dans le sandbox sont isolés des autres utilisateurs et projets
* Les sandboxes sont automatiquement nettoyés à la fin de la session

## Outils disponibles (5/5)

**Exécution de code :**

* **Execute Code** : Exécute du code Node.js/JavaScript dans un environnement sandbox sécurisé

**Gestion de fichiers :**

* **Search Files** : Recherche des fichiers dans la base de connaissances pour les télécharger dans le sandbox
* **Upload File** : Télécharge des fichiers depuis la base de connaissances vers le sandbox Node.js
* **List Files** : Liste tous les fichiers actuellement disponibles dans le sandbox
* **Create Download URL** : Crée des URLs de téléchargement sécurisées pour les fichiers dans le sandbox

## Cas d'utilisation

* **Intégration API** : Appel des API REST et gestion des flux OAuth.
* **Traitement JSON** : Analyse et transformation de structures de données JSON.
* **Automatisation web** : Extraction de contenu de sites web et automatisation de formulaires.
* **Transformation de données** : Conversion entre formats (CSV, JSON, XML, YAML).

## Exemple de code

Vous trouverez ci-dessous un exemple de script Node.js démonstrant l'utilisation de packages NPM, la vérification des dépendances et le pattern requis `module.exports` avec une fonction point d'entrée `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 };
```

## Points clés de l'exemple

* **Point d'entrée** : La fonction `main()` est le point d'entrée, exportée via `module.exports = { main }`.
* **Packages NPM** : Utilisez `require()` pour importer les packages installés (par ex. lodash, axios, @google-cloud/bigquery).
* **Vérification des packages** : Utilisez `require.resolve()` pour vérifier si un package est disponible dans le sandbox.
* **Prise en charge asynchrone** : La fonction principale peut être asynchrone pour gérer les appels API et les opérations sur fichiers.
* **Paramètres** : Définissez des paramètres avec des valeurs par défaut (par ex. `maxLength = 100`, `options = {}`) pour une entrée flexible.
* **Format de retour** : Retournez les résultats sous forme d'objet (par ex. `{ data: ... }`) pour une sortie structurée.
