寻找NestJS中Prisma的最佳实践
我在文档中发现的内容描述了必须创建Prisma服务寻找NestJS中Prisma的最佳实践,nestjs,prisma,Nestjs,Prisma,我在文档中发现的内容描述了必须创建Prisma服务 import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common'; import { PrismaClient } from '@prisma/client'; @Injectable() export class PrismaService extends PrismaClient implements OnModuleInit, OnModuleD
import { Injectable, OnModuleInit, OnModuleDestroy } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
@Injectable()
export class PrismaService
extends PrismaClient
implements OnModuleInit, OnModuleDestroy {
async onModuleInit() {
await this.$connect();
}
async onModuleDestroy() {
await this.$disconnect();
}
}
到目前为止还不错,但正确的用法是什么
我是否应该将其包装到一个模块中,并将该模块导入任何其他与数据库相关的服务中
import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Module({
providers: [PrismaService],
exports: [PrismaService],
})
export class PrismaModule {}
我应该指定全局装饰器吗?与解决方案1相比,这对整体连接有什么影响
import { Module, Global } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Global()
@Module({
providers: [PrismaService],
exports: [PrismaService],
})
export class PrismaModule {}
我是否应该只指定没有模块包装器的服务,并通过root/app模块导出它
import { Module } from '@nestjs/common';
import { PrismaService } from './prisma.service';
@Module({
providers: [PrismaService]
})
export class AppModule {}
关于整体连接的优点和缺点是什么?为了模拟Prisma服务,对单元测试有什么影响