5. 예약 주문 계산하기#
워크플로의 이 단계에서는 n8n 데이터가 어떻게 구성되어 있는지, 그리고 코드 노드를 사용하여 계산을 수행하기 위해 사용자 정의 JavaScript 코드를 추가하는 방법을 배우게 됩니다.
Nathan의 워크플로에서 다음 단계는 예약 주문에서 두 가지 값을 계산하는 것입니다:
- 예약 주문의 총 수
- 모든 예약 주문의 총 가치
데이터를 계산하고 워크플로에 더 많은 기능을 추가하기 위해, 모든 항목의 데이터를 집계할 수 있는 Run Once for All Items 모드를 제공하는 코드 노드를 사용할 수 있습니다.
코드 노드에 대하여#
코드 노드 모드
코드 노드는 데이터를 처리하는 방식을 변경하는 두 가지 운영 모드를 가지고 있습니다. Run Once for All Items 모드는 입력 목록에서 모든 항목의 데이터를 집계할 수 있도록 합니다. Run Once for Each Item 모드는 입력으로 받는 모든 항목에 대해 한 번 실행해야 하는 사용자 정의 JavaScript 코드 스니펫을 추가하는 데 사용됩니다. 코드 노드 사용법에 대해 더 알아보세요.
- 자신의 노드 생성하기.
- 사용자 정의 표현식 작성하기.
- 코드 노드 사용하기.
- n8n을 최대한 활용하기.
n8n에서 노드 간에 전달되는 데이터는 다음 구조를 가진 객체 배열입니다:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
코드 노드 구성하기#
이제 이를 구현하는 방법을 살펴보겠습니다.
워크플로에서 If 노드의 false 브랜치에 연결된 코드 노드를 추가합니다.
코드 노드 창이 열리면 다음 매개변수를 구성합니다:
- 모드: Run Once for All Items 선택
- 언어: JavaScript 선택
- 아래의 코드를 복사하여 코드 상자에 붙여넣습니다:
1 2 3 4 5 6 7 8
let items = $input.all(); let totalBooked = items.length; let bookedSum = 0; for(let i=0; i < items.length; i++) { bookedSum = bookedSum + items[i].json.orderPrice; } return [{json:{totalBooked, bookedSum}}];
계산 결과를 반환하는 형식에 유의하세요:
return [{json:{totalBooked, bookedSum}}]
데이터 구조 오류
올바른 데이터 구조를 사용하지 않으면 다음과 같은 오류 메시지가 표시됩니다: Error: Always an Array of items has to be returned!
이제 테스트 단계를 선택하면 다음과 같은 결과를 볼 수 있습니다:

코드 노드에서 Python 사용하기
코드 노드에서 Python을 사용할 수도 있습니다. 이에 대해 더 배우려면 코드 노드 문서를 참조하세요.
다음은 무엇인가요?#
Nathan 🙋: 와, 코드 노드는 정말 강력하네요! 기본적인 JavaScript 기술만 있으면 워크플로를 강화할 수 있다는 뜻이에요.
You 👩🔧: 맞아요! 코드 없이 작업하는 것에서 저 코드 작업으로 발전할 수 있어요!
Nathan 🙋: 이제, 예약된 주문의 계산을 내 팀의 Discord 채널로 어떻게 보낼 수 있을까요?
You 👩🔧: 그에 대한 n8n 노드가 있어요. 다음 단계에서 설정할게요.