跳至主要内容

使用 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
}