import { INestApplication, Injectable, OnModuleInit } from "@nestjs/common";
import { PrismaClient } from "@prisma/client";
@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit {
async onModuleInit() {
await this.$connect();
console.log("postgresql connected");
}
async enableShutdownHooks(app: INestApplication) {
this.$on("beforeExit", async () => {
await app.close();
});
}
}
错误就在这里
this.$on("beforeExit", async () => {
我尝试了各种解决方案来解决该问题,运行
npx prisma generate
,或更新软件包,但这些都不起作用。
有什么想法吗?
beforeExit
钩子已从图书馆查询引擎中删除,请阅读更多这里。他们有一个“升级指南”可能会有所帮助。这是他们给出的 Prisma ORM 4 代码作为示例:
const exitHandler = () => {
// your exit handler code
}
prisma.$on('beforeExit', exitHandler)
由于这一重大变化,现在无法使用。他们将其替换为
const exitHandler = () => {
// your exit handler code
}
process.on('exit', exitHandler)
process.on('beforeExit', exitHandler)
process.on('SIGINT', exitHandler)
process.on('SIGTERM', exitHandler)
process.on('SIGUSR2', exitHandler)
他们还建议删除您服务中的自定义
enableShutdownHooks
方法。