跳至主要内容

`client`:为 Prisma 客户端添加方法

信息

Prisma Client 扩展从 4.16.0 及更高版本开始正式可用。它们在 4.7.0 版本中以预览版形式引入。如果您运行的版本低于 4.16.0,请确保启用 clientExtensions 预览功能标志。

您可以使用 client Prisma Client 扩展组件来为 Prisma Client 添加顶级方法。

扩展 Prisma Client

使用 $extends 客户端级方法来创建 扩展客户端。扩展客户端是标准 Prisma Client 的一个变体,它被一个或多个扩展包装。使用 client 扩展组件来为 Prisma Client 添加顶级方法。

要为 Prisma Client 添加顶级方法,请使用以下结构

const prisma = new PrismaClient().$extends({
client?: { ... }
})

示例

以下示例使用 client 组件向 Prisma Client 添加了两个方法

  • $log 输出一条消息。
  • $totalQueries 返回当前客户端实例执行的查询数量。
信息

要在您的项目中使用指标,您必须在 schema.prisma 文件的 generator 块中启用 metrics 功能标志。了解更多

let total = 0
const prisma = new PrismaClient().$extends({
client: {
$log: (s: string) => console.log(s),
async $totalQueries() { return total; },
},
query: {
$allModels: {
async $allOperations({ query, args }) {
total += 1;
return query(args);
},
},
},
})

async function main() {
prisma.$log('Hello world')
const totalQueries = await prisma.$totalQueries()
console.log(totalQueries)
}
© . This site is unofficial and not affiliated with Prisma Data, Inc.