在生产中用 Next.js 实例化 PrismaClient
Instantiating PrismaClient with Next.js in production
Prisma 文档建议如下实例化 Prisma Client 以避免臭名昭著的 Already 10 Prisma Clients are actively running
问题;
import { PrismaClient } from '@prisma/client'
declare global {
// allow global `var` declarations
// eslint-disable-next-line no-var
var prisma: PrismaClient | undefined
}
export const prisma =
global.prisma ||
new PrismaClient({
log: ['query'],
})
if (process.env.NODE_ENV !== 'production') global.prisma = prisma
它在开发环境中运行正常。我需要问的是,我需要这个 process.env.NODE_ENV !== 'production'
检查吗?我应该在生产中以不同方式实例化 Prisma Client 吗?
保留支票没有坏处。您的 NODE_ENV
将投入生产,因此条件不匹配,PrismaClient 将不会分配给 global
变量。
生产环境中不会进行热重载,因此无需重复使用相同的 PrismaClient
Prisma 文档建议如下实例化 Prisma Client 以避免臭名昭著的 Already 10 Prisma Clients are actively running
问题;
import { PrismaClient } from '@prisma/client'
declare global {
// allow global `var` declarations
// eslint-disable-next-line no-var
var prisma: PrismaClient | undefined
}
export const prisma =
global.prisma ||
new PrismaClient({
log: ['query'],
})
if (process.env.NODE_ENV !== 'production') global.prisma = prisma
它在开发环境中运行正常。我需要问的是,我需要这个 process.env.NODE_ENV !== 'production'
检查吗?我应该在生产中以不同方式实例化 Prisma Client 吗?
保留支票没有坏处。您的 NODE_ENV
将投入生产,因此条件不匹配,PrismaClient 将不会分配给 global
变量。
生产环境中不会进行热重载,因此无需重复使用相同的 PrismaClient