【发布时间】:2021-08-05 08:43:52
【问题描述】:
我在使用 ExpressJS 和 Prisma 处理错误时遇到了一些问题。每当发生 Prisma 异常时,我的整个 Node 应用程序都会崩溃,我必须重新启动它。我做了一些谷歌搜索并查看了Prisma Docs 的错误处理,但我找不到任何答案。
我知道我可以使用 try 和 catch,但这感觉没有必要,因为我可以使用错误处理程序更好地处理这个问题,尤其是当大量有关错误的信息通过 Prisma 传递时。
我曾尝试像这样实现 Express 错误处理程序:
// index.ts
import errorHandler from "./middleware/errorHandler";
...
server.use(errorHandler);
// errorHandler.ts
import { NextFunction, Response } from "express";
// ts-ignore because next function is required for some weird reason
// @ts-ignore
const errorHandler = (err: any, _: any, res: Response, next: NextFunction) => {
console.error(err.stack);
res.status(500).send("Internal Server Error");
};
export default errorHandler;
这适用于正常错误,但不会针对 Prisma 错误执行,而只会使 Node 应用程序崩溃。
如何实现错误处理程序以便管理 Prisma Expections?
【问题讨论】:
标签: node.js typescript express backend prisma