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

# Node.js実行ツールキット

> 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コード実行ツールキット" width="643" height="279" data-path="img/agents-toolkits/20.jpg" />

**アクセス方法**: メインサイドバー > "Agents" > エージェントを選択 > "Toolkits"タブ > "Code & Development" > "Node.js Code Execution"

1. エージェントを開く > "Toolkits"タブ > "Code & Development"カテゴリ > "Node.js Code Execution"ツールキットを見つける。
2. Node.js Code Executionの"Add to Agent"をクリックし、次に"Configure"をクリックします。"Save"をクリックします。

## Node.js コード実行ツールキット

セキュアなサンドボックス環境でNode.js/JavaScriptコードを実行し、NPMパッケージサポートとファイル管理機能を提供します。JavaScript/TypeScriptワークロード、API統合、JSON処理、非同期操作、Webオートメーションに最適化されています。

## 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="Node.js ツールキット設定パネル" width="1588" height="1143" data-path="img/agents-toolkits/nodejs-config.png" />

Node.jsサンドボックス環境を設定します。このツールキットにより、エージェントはNode.js/JavaScriptコードの実行、ファイルのアップロード、サンドボックス内でのファイル管理が可能になります。

## セキュリティ情報

* Node.jsコードはセキュアで分離されたサンドボックス環境で実行されます
* 各チャットセッションは独立した専用サンドボックスを持ち、状態を保持します
* サンドボックスにアップロードされたファイルは、他のユーザーやプロジェクトから分離されています
* サンドボックスはセッション終了後に自動的にクリーンアップされます

## 利用可能なツール（5/5）

**コード実行:**

* **Execute Code**: セキュアなサンドボックス環境でNode.js/JavaScriptコードを実行します

**ファイル管理:**

* **Search Files**: サンドボックスにアップロードするファイルをナレッジベースで検索します
* **Upload File**: ナレッジベースからNode.jsサンドボックスにファイルをアップロードします
* **List Files**: サンドボックスで現在利用可能なすべてのファイルを一覧表示します
* **Create Download URL**: サンドボックス内のファイルのセキュアなダウンロードURLを作成します

## ユースケース

* **API統合**: REST APIを呼び出し、OAuthフローを処理します。
* **JSON処理**: JSONデータ構造のパースと変換を行います。
* **Webオートメーション**: Webサイトをスクレイピングし、フォームを自動化します。
* **データ変換**: フォーマット間の変換（CSV、JSON、XML、YAML）を行います。

## サンプルコード

以下は、NPMパッケージの使用方法、依存関係チェック、`main()`エントリポイント関数を必要とする`module.exports`パターンを示すNode.jsスクリプトの例です。

```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 };
```

## サンプルのポイント解説

* **エントリポイント**: `main()`関数がエントリポイントであり、`module.exports = { main }`でエクスポートされます。
* **NPMパッケージ**: `require()`を使用してインストール済みパッケージをインポートします（例：lodash、axios、@google-cloud/bigquery）。
* **パッケージチェック**: `require.resolve()`を使用して、サンドボックスでパッケージが利用可能かどうかを確認します。
* **非同期サポート**: main関数はAPI呼び出しやファイル操作を処理するためにasyncにできます。
* **パラメータ**: デフォルト値付きでパラメータを定義し（例：`maxLength = 100`、`options = {}`）、柔軟な入力を実現します。
* **戻り値の形式**: 構造化された出力のために、オブジェクトとして結果を返します（例：`{ data: ... }`）。
