跳到主要內容

中介軟體示例:日誌記錄

以下示例記錄了 Prisma Client 查詢的執行時間

const prisma = new PrismaClient()

prisma.$use(async (params, next) => {
const before = Date.now()

const result = await next(params)

const after = Date.now()

console.log(`Query ${params.model}.${params.action} took ${after - before}ms`)

return result
})

const create = await prisma.post.create({
data: {
title: 'Welcome to Prisma Day 2020',
},
})

const createAgain = await prisma.post.create({
data: {
title: 'All about database collation',
},
})

示例輸出

Query Post.create took 92ms
Query Post.create took 15ms

本示例基於以下示例 schema

generator client {
provider = "prisma-client-js"
}

datasource db {
provider = "mysql"
url = env("DATABASE_URL")
}

model Post {
authorId Int?
content String?
id Int @id @default(autoincrement())
published Boolean @default(false)
title String
user User? @relation(fields: [authorId], references: [id])
language String?

@@index([authorId], name: "authorId")
}

model User {
email String @unique
id Int @id @default(autoincrement())
name String?
posts Post[]
extendedProfile Json?
role Role @default(USER)
}

enum Role {
ADMIN
USER
MODERATOR
}

進一步探索

您也可以使用 Prisma Client 擴充套件 來記錄執行查詢所需的時間。一個功能性示例可以在 這個 GitHub 倉庫中找到。

© . This site is unofficial and not affiliated with Prisma Data, Inc.