簡體   English   中英

管理正在運行的 Prisma Client 實例的 Prisma 問題

[英]Prisma Issue of managing instances of Prisma Client actively running

我是 Prisma 和 Nodejs 的新手

我不小心創建了許多 Prisma Client 實例,這些實例一直顯示警告

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

即使我嘗試刪除舊文件並創建新的 Prisma,它仍然顯示相同的警告。

我想知道有沒有辦法清除已經在運行的重復實例?

我發現很多 INFO 只是為了防止這種情況發生而不是清除它。

Node js version.        : v14.18.2
NPM version.            : 6.14.15
prisma                  : 3.7.0
@prisma/client          : 3.7.0

謝謝您的幫助。

所以問題是您可能每次需要使用它時都在創建一個new PrismaClient() 理想的情況是實例化一次並僅使用該實例。 在文檔中,他們以這種方式推薦它

如果您在無服務器環境中,您也可以嘗試以下代碼:

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;

問題是您可能正在創建一個new PrismaClient()

您可以使用 singleTon 模式來解決它,(我在這里使用 typescript !)

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
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM