如何修復 Already 10 Prisma Clients are actively running
錯誤
我在我的 Next.js 應用中使用 Prisma,但是我做錯了。
我在每個頁面都初始化了一個新的 PrismaClient 對象:
1 | import { PrismaClient } from '@prisma/client' |
但是在應用使用一段時間後,我收到了錯誤訊息 Already 10 Prisma Clients are actively running
和 Address already in use
。
為了解決這個問題,我將 Prisma 初始化的程式碼抽取到一個單獨的文件 lib/prisma.js
中:
1 | import { PrismaClient } from '@prisma/client' |
進行生產環境的檢查是因為在開發模式下,npm run dev
會在運行時清除 Node.js 快取,這會導致因為熱重新加載而每次都初始化一個新的 PrismaClient
,所以我們無法解決這個問題。
我從 https://www.prisma.io/docs/support/help-articles/nextjs-prisma-client-dev-practices 上取得了這段程式碼。
最後,我在我的頁面中導入了導出的 prisma
對象:
1 | import prisma from 'lib/prisma' |
tags: [“Prisma”, “Next.js”, “error”, “fix”]