首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prisma管理Prisma客户端实例的问题

Prisma管理Prisma客户端实例的问题
EN

Stack Overflow用户
提问于 2021-12-23 07:27:54
回答 2查看 1.4K关注 0票数 3

我对Prisma和Nodejs很陌生

我意外地创建了许多Prisma客户端实例,这些实例不断显示

warn(prisma-client) There are already 10 instances of Prisma Client actively running.

即使我尝试删除旧文件并创建一个新的Prisma,它仍然显示相同的警告。

我想知道有什么方法可以清除已经在运行的重复实例吗?

我发现很多信息只是为了防止情况的发生,而不是清除它。

代码语言:javascript
复制
Node js version.        : v14.18.2
NPM version.            : 6.14.15
prisma                  : 3.7.0
@prisma/client          : 3.7.0

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-29 22:13:37

因此,问题在于,每次需要使用new PrismaClient()时,您可能都在创建它。理想的方法是实例化它一次,并且只使用该实例。在文档中,他们在这个道路中推荐它

如果您是在一个无服务器的env中,您也可以尝试以下代码:

代码语言:javascript
复制
import { PrismaClient } from "@prisma/client";

declare global {
  namespace NodeJS {
    interface Global {
      prisma: PrismaClient;
    }
  }
}

let prisma: PrismaClient;

if (!global.prisma) {
  global.prisma = new PrismaClient({
    log: ["info"],
  });
}
prisma = global.prisma;

export default prisma;
票数 7
EN

Stack Overflow用户

发布于 2022-07-31 18:19:59

问题是您可能正在创建一个new PrismaClient()

您可以使用singleTon模式来解决这个问题,(这里使用的是类型记录!)

代码语言:javascript
复制
import { PrismaClient } from '@prisma/client'

export class Prisma {
    public static Prisma :PrismaClient ;
    
    static  getPrisma (){
      //verify if prisma instance not exist
        if (this.Prisma===null || !this.Prisma)
      //create new one
            this.Prisma=new PrismaClient()
        return this.Prisma
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70458934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档