InfoGrab DocsInfoGrab Docs

Code node 공통 문제

요약

다음은 Code node에서 발생하는 일반적인 오류 및 문제와 이를 해결하거나 문제를 해결하기 위한 단계입니다. 이 오류는 Code node의 코드가 예상된 형식으로 데이터를 반환하지 않을 때 발생합니다. n8n에서 노드 간에 전달되는 모든 데이터는 객체 배열입니다.

다음은 Code node에서 발생하는 일반적인 오류 및 문제와 이를 해결하거나 문제를 해결하기 위한 단계입니다.

Code가 항목을 제대로 반환하지 않음#

이 오류는 Code node의 코드가 예상된 형식으로 데이터를 반환하지 않을 때 발생합니다.

n8n에서 노드 간에 전달되는 모든 데이터는 객체 배열입니다. 이러한 객체 각각은 json 키를 가진 또 다른 객체를 감쌉니다.

[
  {
    "json": {
	  // your data goes here
	}
  }
]

이 오류를 해결하려면 다음을 확인하세요.

  • 데이터 구조를 읽고 Code node에서 받는 데이터와 노드에서 데이터를 출력하기 위한 요구 사항을 이해하세요.
  • 항목 연결(item linking)을 통해 데이터 항목이 작동하는 방식과 이전 노드의 데이터 항목을 연결하는 방법을 이해하세요.

'json' 속성이 객체가 아님#

이 오류는 Code node가 json 키가 객체를 가리키지 않는 데이터를 반환할 때 발생합니다.

이는 json을 배열과 같은 다른 데이터 구조로 설정한 경우 발생할 수 있습니다.

[
  {
    "json": [
	  // Setting `json` to an array like this will produce an error
	]
  }
]

이를 해결하려면 반환 데이터에서 json 키가 객체를 참조하도록 하세요.

[
  {
    "json": {
	  // Setting `json` to an object as expected
	}
  }
]

Code가 객체를 반환하지 않음#

이 오류는 Code node가 아무것도 반환하지 않거나 예상치 못한 결과를 반환할 때 발생할 수 있습니다.

이를 해결하려면 Code node가 예상되는 데이터 구조를 반환하도록 하세요.

[
  {
    "json": {
	  // your data goes here
	}
  }
]

이 오류는 제공한 코드가 예상된 결과 대신 'undefined'를 반환하는 경우에도 발생할 수 있습니다. 이 경우 Code node에서 참조하는 데이터가 각 실행마다 존재하며, 코드가 예상하는 구조를 갖추고 있는지 확인하세요.

'import'와 'export'는 최상위 레벨에서만 나타날 수 있음#

이 오류는 Code node에서 import 또는 export를 사용하려고 할 때 발생합니다. 이는 n8n의 JavaScript 샌드박스에서 지원되지 않습니다. 대신 require 함수를 사용하여 모듈을 로드하세요.

이 문제를 해결하려면 import 문을 require를 사용하도록 변경해 보세요.

// Original code:
// import express from "express";
// New code:
const express = require("express");

Cannot find module '<module>'#

이 오류는 Code node에서 require를 사용하려고 했지만 n8n이 해당 모듈을 찾을 수 없을 때 발생합니다.

Warning

셀프 호스팅 전용

n8n은 Cloud 버전에서 모듈 가져오기를 지원하지 않습니다.

n8n을 셀프 호스팅하고 있다면 다음 단계를 따르세요.

  • n8n 환경에 모듈을 설치하세요.
    • npm으로 n8n을 실행 중이라면 n8n과 동일한 환경에 모듈을 설치하세요.
    • Docker로 n8n을 실행 중이라면 모듈을 포함하는 커스텀 이미지로 공식 n8n 이미지를 확장해야 합니다.
  • 모듈 가져오기를 허용하려면 NODE_FUNCTION_ALLOW_BUILTINNODE_FUNCTION_ALLOW_EXTERNAL 환경 변수를 설정하세요.

전역 변수 사용하기#

때로는 워크플로 전반에 걸쳐, 그리고 여러 실행에 걸쳐 워크플로와 관련된 간단한 전역 데이터를 설정하고 조회하고 싶을 수 있습니다. 예를 들어, 프로젝트 업데이트 목록이 포함된 보고서를 작성할 때 이전 보고서의 날짜를 포함하고 싶을 수 있습니다.

워크플로에 직접 데이터를 설정, 업데이트, 조회하려면 코드 내에서 정적 데이터 함수를 사용하세요. 데이터를 전역적으로 관리하거나 특정 노드에 연결하여 관리할 수 있습니다.

Note

가능하면 Remove Duplicates를 사용하세요

동일한 데이터 항목을 두 번 이상 처리하지 않기 위해 변수를 사용하는 데 관심이 있다면, 대신 Remove Duplicates node를 사용하는 것을 고려하세요. Remove Duplicates node는 실행 간에 정보를 저장하여 동일한 항목을 여러 번 처리하지 않도록 할 수 있습니다.

Code node에서 자격 증명에 접근할 수 없음#

설계상 Code node는 자격 증명에 접근할 수 없습니다. Code node는 n8n의 내부 자격 증명 관리 시스템에 접근할 수 없습니다. 이는 민감한 인증 데이터가 노출되는 것을 방지합니다.

this.getCredentials() 또는 $getCredentials()와 같은 표현식이나 메서드를 사용하여 Code node에서 자격 증명을 참조하려고 하면 this.getCredentials is not a function$getCredentials is not defined와 같은 오류가 발생합니다.

인증된 API 호출을 수행해야 하는 경우, 자격 증명 지원을 제공하는 HTTP Request node를 사용하세요.

자격 증명을 동적으로 다루려면 Code node 외부에서 자격 증명 선택 로직을 처리하세요.

  • Switch node를 사용하여 서로 다른 자격 증명을 가진 다른 노드로 라우팅하세요.
  • 자격 증명 필드에서 표현식을 직접 사용하여 이전 노드 데이터를 기반으로 자격 증명을 동적으로 선택하세요.
  • Custom Auth가 적용된 HTTP Request node를 사용하여 표현식으로 헤더, 쿼리 매개변수, 또는 본문 값을 동적으로 설정하세요.

Code node 공통 문제

n8n v2.29
원문 보기
요약

다음은 Code node에서 발생하는 일반적인 오류 및 문제와 이를 해결하거나 문제를 해결하기 위한 단계입니다. 이 오류는 Code node의 코드가 예상된 형식으로 데이터를 반환하지 않을 때 발생합니다. n8n에서 노드 간에 전달되는 모든 데이터는 객체 배열입니다.

다음은 Code node에서 발생하는 일반적인 오류 및 문제와 이를 해결하거나 문제를 해결하기 위한 단계입니다.

Code가 항목을 제대로 반환하지 않음#

이 오류는 Code node의 코드가 예상된 형식으로 데이터를 반환하지 않을 때 발생합니다.

n8n에서 노드 간에 전달되는 모든 데이터는 객체 배열입니다. 이러한 객체 각각은 json 키를 가진 또 다른 객체를 감쌉니다.

[
  {
    "json": {
	  // your data goes here
	}
  }
]

이 오류를 해결하려면 다음을 확인하세요.

  • 데이터 구조를 읽고 Code node에서 받는 데이터와 노드에서 데이터를 출력하기 위한 요구 사항을 이해하세요.
  • 항목 연결(item linking)을 통해 데이터 항목이 작동하는 방식과 이전 노드의 데이터 항목을 연결하는 방법을 이해하세요.

'json' 속성이 객체가 아님#

이 오류는 Code node가 json 키가 객체를 가리키지 않는 데이터를 반환할 때 발생합니다.

이는 json을 배열과 같은 다른 데이터 구조로 설정한 경우 발생할 수 있습니다.

[
  {
    "json": [
	  // Setting `json` to an array like this will produce an error
	]
  }
]

이를 해결하려면 반환 데이터에서 json 키가 객체를 참조하도록 하세요.

[
  {
    "json": {
	  // Setting `json` to an object as expected
	}
  }
]

Code가 객체를 반환하지 않음#

이 오류는 Code node가 아무것도 반환하지 않거나 예상치 못한 결과를 반환할 때 발생할 수 있습니다.

이를 해결하려면 Code node가 예상되는 데이터 구조를 반환하도록 하세요.

[
  {
    "json": {
	  // your data goes here
	}
  }
]

이 오류는 제공한 코드가 예상된 결과 대신 'undefined'를 반환하는 경우에도 발생할 수 있습니다. 이 경우 Code node에서 참조하는 데이터가 각 실행마다 존재하며, 코드가 예상하는 구조를 갖추고 있는지 확인하세요.

'import'와 'export'는 최상위 레벨에서만 나타날 수 있음#

이 오류는 Code node에서 import 또는 export를 사용하려고 할 때 발생합니다. 이는 n8n의 JavaScript 샌드박스에서 지원되지 않습니다. 대신 require 함수를 사용하여 모듈을 로드하세요.

이 문제를 해결하려면 import 문을 require를 사용하도록 변경해 보세요.

// Original code:
// import express from "express";
// New code:
const express = require("express");

Cannot find module '<module>'#

이 오류는 Code node에서 require를 사용하려고 했지만 n8n이 해당 모듈을 찾을 수 없을 때 발생합니다.

Warning

셀프 호스팅 전용

n8n은 Cloud 버전에서 모듈 가져오기를 지원하지 않습니다.

n8n을 셀프 호스팅하고 있다면 다음 단계를 따르세요.

  • n8n 환경에 모듈을 설치하세요.
    • npm으로 n8n을 실행 중이라면 n8n과 동일한 환경에 모듈을 설치하세요.
    • Docker로 n8n을 실행 중이라면 모듈을 포함하는 커스텀 이미지로 공식 n8n 이미지를 확장해야 합니다.
  • 모듈 가져오기를 허용하려면 NODE_FUNCTION_ALLOW_BUILTINNODE_FUNCTION_ALLOW_EXTERNAL 환경 변수를 설정하세요.

전역 변수 사용하기#

때로는 워크플로 전반에 걸쳐, 그리고 여러 실행에 걸쳐 워크플로와 관련된 간단한 전역 데이터를 설정하고 조회하고 싶을 수 있습니다. 예를 들어, 프로젝트 업데이트 목록이 포함된 보고서를 작성할 때 이전 보고서의 날짜를 포함하고 싶을 수 있습니다.

워크플로에 직접 데이터를 설정, 업데이트, 조회하려면 코드 내에서 정적 데이터 함수를 사용하세요. 데이터를 전역적으로 관리하거나 특정 노드에 연결하여 관리할 수 있습니다.

Note

가능하면 Remove Duplicates를 사용하세요

동일한 데이터 항목을 두 번 이상 처리하지 않기 위해 변수를 사용하는 데 관심이 있다면, 대신 Remove Duplicates node를 사용하는 것을 고려하세요. Remove Duplicates node는 실행 간에 정보를 저장하여 동일한 항목을 여러 번 처리하지 않도록 할 수 있습니다.

Code node에서 자격 증명에 접근할 수 없음#

설계상 Code node는 자격 증명에 접근할 수 없습니다. Code node는 n8n의 내부 자격 증명 관리 시스템에 접근할 수 없습니다. 이는 민감한 인증 데이터가 노출되는 것을 방지합니다.

this.getCredentials() 또는 $getCredentials()와 같은 표현식이나 메서드를 사용하여 Code node에서 자격 증명을 참조하려고 하면 this.getCredentials is not a function$getCredentials is not defined와 같은 오류가 발생합니다.

인증된 API 호출을 수행해야 하는 경우, 자격 증명 지원을 제공하는 HTTP Request node를 사용하세요.

자격 증명을 동적으로 다루려면 Code node 외부에서 자격 증명 선택 로직을 처리하세요.

  • Switch node를 사용하여 서로 다른 자격 증명을 가진 다른 노드로 라우팅하세요.
  • 자격 증명 필드에서 표현식을 직접 사용하여 이전 노드 데이터를 기반으로 자격 증명을 동적으로 선택하세요.
  • Custom Auth가 적용된 HTTP Request node를 사용하여 표현식으로 헤더, 쿼리 매개변수, 또는 본문 값을 동적으로 설정하세요.