我应该如何将 prisma 客户端实例传递给 graphql 上下文?

How should i pass prisma client instance to graphql context?

我应该如何将 prisma 客户端实例传递给 graphql 上下文?

const prisma = new PrismaClient()

// Should i use it like this?
export async function contextResolver(ctx: Ctx): Promise<Ctx> {
  ctx.db = prisma
}

// Or this
export async function contextResolver(ctx: Ctx): Promise<Ctx> {
  ctx.db = new PrismaClient()
}

const apolloServer = new ApolloServer({
  schema,
  context: contextResolver
})

我不确定在第一种情况下我的客户端是否会在第一次请求进行交易时以某种方式被阻止,此时第二次尝试使用相同的客户端。

应该是第一个

const prisma = new PrismaClient()

export async function contextResolver(ctx: Ctx): Promise<Ctx> {
  ctx.db = prisma
}

建议在整个应用程序中只包含一个 Prisma 运行 实例。这也将防止数据库连接耗尽。