`client`:為 Prisma Client 新增方法
資訊
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
功能標誌。了解更多。
const prisma = new PrismaClient().$extends({
client: {
$log: (s: string) => console.log(s),
async $totalQueries() {
const index_prisma_client_queries_total = 0
// Prisma.getExtensionContext(this) in the following block
// returns the current client instance
const metricsCounters = await (
await Prisma.getExtensionContext(this).$metrics.json()
).counters
return metricsCounters[index_prisma_client_queries_total].value
},
},
})
async function main() {
prisma.$log('Hello world')
const totalQueries = await prisma.$totalQueries()
console.log(totalQueries)
}