> ## 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" />

**접근 방법:** 메인 사이드바 > "에이전트" > 에이전트 선택 > "툴킷" 탭 > "코드 및 개발" > "Node.js 코드 실행"

1. 에이전트 열기 > "툴킷" 탭 > "코드 및 개발" 카테고리 > "Node.js 코드 실행" 툴킷 찾기.
2. Node.js 코드 실행에서 "에이전트에 추가" 클릭, 다음 "구성" 클릭. "저장" 클릭.

## Node.js 코드 실행 툴킷

NPM 패키지 지원 및 파일 관리 기능을 갖춘 안전한 샌드박스 환경에서 Node.js/JavaScript 코드를 실행합니다. JavaScript/TypeScript 워크로드, API 통합, JSON 처리, 비동기 작업 및 웹 자동화에 최적화되어 있습니다.

## 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 데이터 구조를 파싱하고 변환합니다.
* **웹 자동화**: 웹사이트를 스크래핑하고 양식을 자동화합니다.
* **데이터 변환**: 형식 간 변환 (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()`를 사용하여 샌드박스에서 패키지 사용 가능 여부를 확인합니다.
* **비동기 지원**: 메인 함수는 API 호출 및 파일 작업을 처리하기 위해 비동기일 수 있습니다.
* **매개변수**: 유연한 입력을 위해 기본값이 있는 매개변수를 정의합니다 (예: `maxLength = 100`, `options = {}`).
* **반환 형식**: 구조화된 출력을 위해 객체로 결과를 반환합니다 (예: `{ data: ... }`).
