Next.JS - Prisma 오류를 처리하기 위한 작은 데코레이터(Higher Order Function)
prisma
클라이언트에서 예외를 처리하는 일반적인 방법을 찾을 수 없어서 매우 놀랐습니다. 그래서 나만의 데코레이터를 작성했습니다.나는 이제 막 Next.js를 배우기 시작했기 때문에 내 접근 방식이 매우 순진할 수 있습니다. 여기에서 개선 사항이 보이면 알려주세요.
dev
이외의 다른 환경에 대한 오류 세부 정보를 숨깁니다.import { NextApiRequest, NextApiResponse } from "next";
import { isDevEnv } from "./common";
import { Prisma } from "@prisma/client";
export function withPrismaError(request: (req: NextApiRequest, res: NextApiResponse) => unknown) {
return async function (req: NextApiRequest, res: NextApiResponse) {
try {
await request(req, res);
} catch (e) {
if (e instanceof Prisma.PrismaClientKnownRequestError) {
const errorResponse = {
error: isDevEnv ? `${e.code} ${e.message}` : "prisma_error",
};
return res.status(503).json(errorResponse);
}
return res.status(503).json({ error: true });
}
};
}
사용법:
export default withPrismaError(
async function handler(req: NextApiRequest, res: NextApiResponse) {
const { email, password, url } = req.body;
await registerUser(email, password, url);
res.status(200).json({ success: true });
}
);
추신. ...그리고 "안녕하세요 여러분", 분명히 오늘 저는 "잠복자"에서 블로거로 전환되었습니다!
Reference
이 문제에 관하여(Next.JS - Prisma 오류를 처리하기 위한 작은 데코레이터(Higher Order Function)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mk/nextjs-little-decorator-higher-order-function-to-handle-prisma-errors-e5j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)