跳至主要内容

使用 Prisma Client 与 Next.js 和 Next.js 数据缓存的最佳实践

问题

在部署 Next.js 应用时,您可能会遇到查询未更新或显示不正确内容的问题。或者,您可能会发现新创建的对象需要很长时间才能在您的查询中显示。

在这些情况下,您很可能看到数据保存在Next.js 数据缓存中。默认情况下,任何 fetch 请求的结果都会被缓存,这可能导致意外的结果,因为 Prisma 在内部使用 fetch

解决方案

要选择退出 Next.js 数据缓存,您可以使用 "force-dynamic" 配置选项禁用特定路由的缓存,以便始终返回最新数据并且不会发生缓存。

您可以像这样添加 "force-dynamic"

import { NextRequest, NextResponse } from 'next/server'
import prisma from './db'

export const dynamic = 'force-dynamic'

export async function GET(request: NextRequest, response: NextResponse) {
// your code would go here
}