이때까지 작성했던 폼을 제출해본다.

실제 DB에 저장하는 백엔드 코드 작성 흐름

import { NextResponse } from 'next/server';

import prisma from '@/app/libs/prismadb';
import getCurrentUser from '@/app/actions/getCurrentUser';

export async function POST(request: Request) {
  // 현재 로그인 되어있는 사용자의 정보가져오기
  const currentUser = await getCurrentUser();
  // 없으면 에러
  if (!currentUser) {
    return NextResponse.error();
  }
  // 클라이언트에서 받아온 정보
  const body = await request.json();
  const {
    category,
    location,
    guestCount,
    roomCount,
    bathroomCount,
    imageSrc,
    price,
    title,
    description,
  } = body;

  // You can remove this if you want to
  Object.keys(body).forEach((value: any) => {
    if (!body[value]) {
      NextResponse.error();
    }
  });

  const listing = await prisma.listing.create({
    data: {
      category,
      locationValue: location.value,
      guestCount,
      roomCount,
      bathroomCount,
      imageSrc,
      price: parseInt(price, 10),
      title,
      description,
      userId: currentUser.id,
    },
  });

  return NextResponse.json(listing);
}