asyncHandler함수를 활용하여 에러처리를 한다.

import { PrismaClient, Prisma } from '@prisma/client';

// ...

function asyncHandler(handler) {
  return async function (req, res) {
    try {
      await handler(req, res);
    } catch (e) {
      if (
        e instanceof Prisma.PrismaClientValidationError ||
        e.name === 'StructError'
      ) {
        res.status(400).send({ message: e.message });
      } else if (
        e instanceof Prisma.PrismaClientKnownRequestError &&
        e.code === 'P2025'
      ) {
        res.sendStatus(404);
      } else {
        res.status(500).send({ message: e.message });
      }
    }
  };
}

// ...

app.post('/users', asyncHandler(async (req, res) => {
  assert(req.body, CreateUser); 
  // ...
}));