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