거의 똑같은 로직 2개 있을 때 꿀팁

김현준·2024년 4월 24일
0

넥스트JS 이모저모

목록 보기
2/23

#9.1참고

if (phone) {
   user = await client.user.upsert({
     where: {
       phone: +phone,
     },
     update: {
       // ... user가 있다면 데이터 갱신
     },
     create: {
       name: "jun",
       phone: +phone,
     },
   });
 } else if (email) {
   user = await client.user.upsert({
     where: {
       email,
     },
     update: {
       // ... user가 있다면 데이터 갱신
     },
     create: {
       name: "jun",
       email,
     },
   });
 }

//위 코드를
 const user = await client.user.upsert({
   where: {
     ...(phone && { phone: +phone }),
     ...(email && { email }),
   },
   update: {
     // ... user가 있다면 데이터 갱신
   },
   create: {
     name: "jun",
     ...(phone && { phone: +phone }),
     ...(email && { email }),
   },
 });
//이렇게 줄였다, 또는

 const payload = phone ? { phone: +phone } : { email };
 const user = await client.user.upsert({
   where: {
     ...payload, 
   },
   update: {
     // ... user가 있다면 데이터 갱신
   },
   create: {
     name: "jun",
     ...payload,
   },
 });

...을 넣은 이유는 //phone과 email이 둘 다 있을 경우를 위해서이다.
profile
기록하자

0개의 댓글