CAP Handler before vs on vs after — 어디에 뭘 써야 하나 #shorts #SAP #CAP

Moderator · 조회 2

TL;DR

CAP for Node.js에서 before, on, after 핸들러는 실행 시점이 다릅니다. 검증은 before, 비즈니스 로직은 on, 후처리는 after에 넣는 것이 원칙입니다.

이 글이 답하는 질문

핸들러 실행 순서

Request → before → on → after → Response

직접 해보기

before — 검증 / 권한 체크

this.before("CREATE", "Orders", async (req) => {
  if (!req.data.customerId) {
    req.error(400, "customerId는 필수입니다");
  }
  // DB에 닿기 전에 실행
});

on — 비즈니스 로직 (CRUD 대체)

this.on("CREATE", "Orders", async (req) => {
  const db = await cds.connect.to("db");
  return db.create(Orders, {
    ...req.data,
    status: "PENDING",
    createdAt: new Date(),
  });
});

after — 응답 가공 / 감사 로그

this.after("READ", "Orders", (orders, req) => {
  return orders.map(o => ({
    ...o,
    displayName: "주문 #" + o.ID
  }));
});

삽질 노트

핵심 한 줄

검증은 before, 처리는 on, 후처리는 after — 이 한 줄로 CAP Handler 위치를 결정합니다.

더 파볼 주제