Next.js API 路由中的数据缓存:更新故障排除
部署通过 API 从数据库获取数据的 Next.js 应用程序时端点,可能会遇到这样的问题:尽管部署后数据库发生了更改,但数据仍保持静态。根本原因通常在于 Next.js 在生产模式下实现的缓存机制。
了解 Next.js 中的缓存
在应用程序目录和生产环境中,Next .js 默认缓存在 API 路由和服务器组件中检索的数据。这通过减少数据库查询和缩短响应时间来优化性能。但是,它会干扰数据更新。
禁用缓存
要防止缓存,您可以使用以下选项修改 fetch() 方法:
<code class="javascript">fetch('https://...', { next: { revalidate: 10 } }); </code>
路由段配置
如果您不使用 fetch() 或想要配置缓存在路由级别,您可以使用路由段配置。这允许您在路由组件中设置缓存选项。
<code class="javascript">// layout.js OR page.js OR route.js import prisma from './lib/prisma'; /* Below option is when you want no caching at all, there are more options on the doc depending on your needs. */ export const dynamic = "force-dynamic"; async function getPosts() { const posts = await prisma.post.findMany(); return posts; } export default async function Page() { const posts = await getPosts(); // ... }</code>
通过应用这些缓存调整,您可以确保您的 Next.js 应用程序在部署后从数据库检索最新数据,保持准确性和实时性更新。
以上是为什么我的 Next.js API 路由数据在部署后没有更新?的详细内容。更多信息请关注PHP中文网其他相关文章!