Expression 문법 마스터 — 10 패턴
표현식 {{ }} 안에서 자주 쓰는 JavaScript 패턴 10가지. 문자열·Luxon 날짜·조건·배열까지 — 외울 게 아니라 한 번 봐두고 필요할 때 돌아오는 치트시트.
Ch.4 에서 $json·$input·$node·$now·$workflow 다섯 변수를 봤다면, 이제 그 변수를 어떤 식으로 조작해서 원하는 결과를 만드는지가 표현식의 본격적 영역입니다. n8n 의 표현식은 평범한 JavaScript 라서 String.split·Array.map 같은 표준 메서드를 그대로 씁니다. 다만 날짜는 Luxon 이라는 라이브러리를 쓴다는 점만 조금 다릅니다.
표현식의 두 모드 — 정적 텍스트 vs `=` 표시
={{ }} 표현식을 넣습니다.모든 입력 필드는 두 가지로 해석됩니다. 클릭 후 보이는 = 작은 표시가 결정.
Hello {{ name }} 라고 쳐도 그냥 문자열 Hello {{ name }}.표현식 모드 (=) — 필드 좌측에
= 표시. {{ }} 안의 JavaScript 가 실행되고 결과가 들어감.
필드를 클릭한 채 Expression 탭을 누르면 표현식 모드로 전환. 또는 그냥 = 로 시작해도 자동 전환됩니다.
패턴 1~5 — 문자열 다루기
① 이메일에서 사용자명만
② 문자열 잘라 앞 N자만
③ 여러 필드 하나로 합치기
④ 대소문자·공백 정리
⑤ 치환 — replace
패턴 6~7 — Luxon 날짜·시간
n8n 은 날짜 처리에 Luxon 라이브러리를 씁니다. JavaScript 의 Date 보다 한국어 사용자에게 편한 부분이 많아요. $now 가 이미 Luxon DateTime 객체라 그대로 메서드 호출 가능.
⑥ 현재 날짜·시간 포맷
포맷 토큰은 Luxon 공식 표 참고. 자주 쓰는 건 yyyy(연 4자리), MM(월), dd(일), HH(24시), mm(분), ss(초).
⑦ 날짜 계산 — 7일 전·후
패턴 8~10 — 조건·배열
⑧ 조건문 — 삼항 연산자
표현식 안엔 if {} 못 쓰지만 삼항 연산자로 거의 모든 분기 처리 가능. 더 복잡하면 IF 노드 또는 Code 노드.
⑨ 배열 변환 — map · filter
⑩ 안전한 접근 — Optional Chaining
?. 는 "있으면 다음으로, 없으면 undefined". ?? 는 "왼쪽이 undefined/null 이면 오른쪽". 두 개 조합으로 에러 없이 안전하게 꺼낼 수 있어요.
실수 패턴 + 디버깅
{{ }} 안은 한 줄. 줄바꿈 들어가면 빨간 줄 + 실행 실패. 복잡해지면 Code 노드(Ch.13)로 분리.{{ "Hello" + $json.name }} 처럼 큰따옴표 또는 작은따옴표 OK. 단 그 표현식이 들어가는 필드가 큰따옴표로 감싸여 있으면 안쪽엔 작은따옴표만. (HTTP Request 헤더 값에 표현식 쓸 때 자주 부딪힘.)가장 빠른 디버깅 방법 — 표현식 입력란 우측에 작은 미리보기 박스가 자동으로 떠요. 실제로 실행했을 때 어떤 값이 들어가는지 입력 중에도 즉시 보여주니까, "내가 쓰는 게 맞나" 확인이 1초.
입문편 5 챕터가 끝났습니다. Ch.6 부터는 기초편 — Schedule Trigger 로 매일 9시 자동 실행을 시작으로, 일상 자동화 패턴들을 하나씩 실제로 짭니다.