코드 노드 일반 문제#
다음은 Code node와 관련된 일반적인 오류 및 문제와 이를 해결하거나 문제를 해결하기 위한 단계입니다.
코드가 항목을 제대로 반환하지 않음#
이 오류는 코드 노드에서 코드가 예상하는 형식으로 데이터를 반환하지 않을 때 발생합니다.
n8n에서 노드 간에 전달되는 모든 데이터는 객체 배열입니다. 이 객체 각각은 json
키가 있는 다른 객체를 래핑합니다:
1 2 3 4 5 6 7 |
|
이 오류를 해결하기 위해 다음을 확인하세요:
- 데이터 구조를 읽어 코드 노드에서 받은 데이터와 노드에서 데이터를 출력하기 위한 요구 사항을 이해합니다.
- 데이터 항목이 어떻게 작동하는지 이해하고 이전 노드의 데이터 항목과 항목 연결을 연결하는 방법을 이해합니다.
'json' 속성이 객체가 아님#
이 오류는 코드 노드가 json
키가 객체를 가리키지 않는 데이터를 반환할 때 발생합니다.
이런 상황은 json
을 배열과 같은 다른 데이터 구조로 설정하면 발생할 수 있습니다:
1 2 3 4 5 6 7 |
|
이 문제를 해결하려면 json
키가 반환 데이터에서 객체를 참조하도록 하세요:
1 2 3 4 5 6 7 |
|
코드가 객체를 반환하지 않음#
이 오류는 코드 노드가 아무것도 반환하지 않거나 예상치 못한 결과를 반환할 때 발생할 수 있습니다.
이 문제를 해결하려면 코드 노드가 예상되는 데이터 구조를 반환하는지 확인하세요:
1 2 3 4 5 6 7 |
|
코드에서 제공한 내용이 예상된 결과 대신 'undefined'
를 반환하는 경우에도 이런 오류가 발생할 수 있습니다. 이 경우 코드 노드에서 참조하는 데이터가 각 실행에 존재하며 코드가 예상하는 구조를 가지고 있는지 확인하세요.
'import' 및 'export'는 최상위 수준에서만 사용 가능#
이 오류는 코드 노드에서 import
또는 export
를 사용하려고 할 경우 발생합니다. 이러한 기능은 n8n의 JavaScript 샌드박스에서는 지원되지 않습니다. 대신 require
함수를 사용하여 모듈을 로드하세요.
이 문제를 해결하려면 import
문을 require
를 사용하도록 변경해 보세요:
1 2 3 4 |
|
모듈 '<module>'을(를) 찾을 수 없음#
이 오류는 코드 노드에서 require
를 사용하려고 할 때 n8n이 모듈을 찾을 수 없을 경우 발생합니다.
제외: 자체 호스팅
n8n은 Cloud 버전에서 모듈을 가져오는 것을 지원하지 않습니다.
자체 호스팅 self-hosting n8n을 사용하는 경우, 다음 단계를 따르세요:
- n8n 환경에 모듈을 설치합니다.
- n8n을 npm으로 실행하는 경우, n8n과 동일한 환경에 모듈을 설치하세요.
- n8n을 Docker로 실행하는 경우, 사용자 정의 이미지(custom image)로 공식 n8n 이미지를 확장하여 모듈을 포함해야 합니다.
- 모듈을 가져오는 것을 허용하도록
NODE_FUNCTION_ALLOW_BUILTIN
및NODE_FUNCTION_ALLOW_EXTERNAL
환경 변수를 설정합니다.
전역 변수 사용#
때때로 실행 전반에 걸쳐 워크플로와 관련된 간단한 전역 데이터를 설정하고 검색해야 할 수도 있습니다. 예를 들어, 프로젝트 업데이트 목록을 포함한 보고서를 작성할 때 이전 보고서의 날짜를 포함하고자 할 수 있습니다.
워크플로에 직접 데이터를 설정, 업데이트 및 검색하려면 코드 내에서 static data 함수를 사용하세요. 데이터를 전역적으로 관리하거나 특정 노드에 연결하여 관리할 수 있습니다.
가능한 경우 중복 제거 사용
데이터 항목을 여러 번 처리하는 것을 피하기 위해 변수를 사용하는 데 관심이 있다면 Remove Duplicates node를 대신 사용하는 것을 고려하세요. Remove Duplicates 노드는 실행 간 정보를 저장하여 동일한 항목을 여러 번 처리하는 것을 피할 수 있습니다.