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中文網其他相關文章!