【发布时间】:2021-12-03 11:32:45
【问题描述】:
我的 prisma.service.ts 看起来像这样:
@Injectable()
export class PrismaService extends PrismaClient implements OnModuleInit {
async onModuleInit() {
await this.$connect();
}
async enableShutdownHooks(app: INestApplication) {
this.$on('beforeExit', async () => {
await app.close();
});
}
}
根据Prisma docs,我应该将它们放在请求处理程序的上下文之外。这就是我在 main.ts 上创建的应用程序。在定义应用程序本身之前将中间件放在那里对我来说看起来很奇怪并且不起作用。我更愿意将它放在 prisma.service.ts 文件本身
【问题讨论】:
-
在这种情况下,理想情况下它将位于
onModuleInit内。还要确保PrismaService在整个应用程序中只创建了一个实例。多个实例意味着多个中间件,这可能会导致问题。