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