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);
// ...
}));