🕌

【Next.js】基礎から始めるNext.js API Routes【5Request Method】

2022/12/13に公開

【5Request Method】

YouTube: https://youtu.be/O3VycNTWnvo

https://youtu.be/O3VycNTWnvo

今回はリクエストのメソッド内容に応じて条件分岐で処理を分ける部分について解説します。

後ほど、ユーザーのリスト取得やユーザー追加のフォームを実装して
動作を確認するのですが、今の時点で正常に動くかどうかを確認したい方は、
「Postman」をインストールしてください。

https://www.postman.com/

pages/api/users/index.ts
import type { NextApiRequest, NextApiResponse } from 'next'
import { prisma } from '../../../utils/prismaClient'

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  const { method, body } = req

  switch (method) {
    case 'GET':
      const users = await prisma.user.findMany({
        select: {
          id: true,
          name: true,
          email: true,
        },
      })
      res.status(200).json(users)
      break

    case 'POST':
      const createdUser = await prisma.user.create({
        data: {
          email: body.email,
          name: body.name,
          password: body.password,
        },
        select: {
          id: true,
          name: true,
          email: true,
        },
      })
      res.status(200).json(createdUser)
      break

    default:
      res.setHeader('Allow', ['GET', 'POST'])
      res.status(405).end(`${method} method not allowed`)
  }
}

Discussion