首頁 > web前端 > js教程 > 主體

為什麼我的 Next.js API 路由資料在部署後沒有更新?

DDD
發布: 2024-11-01 17:22:30
原創
740 人瀏覽過

Why Isn't My Next.js API Route Data Updating After Deployment?

Next.js API 路由中的資料快取:更新故障排除

部署透過API 從資料庫取得資料的Next.js 應用程式時端點,可能會遇到這樣的問題:儘管部署後資料庫發生了更改,但資料仍保持靜態。根本原因通常在於 Next.js 在生產模式下實現的快取機制。

了解 Next.js 中的快取

在應用程式目錄和生產環境中,Next .js 預設快取在 API 路由和伺服器元件中檢索的資料。這透過減少資料庫查詢和縮短回應時間來優化效能。但是,它會幹擾資料更新。

停用快取

要防止緩存,您可以使用以下選項修改fetch() 方法:

  • revalidate: 指定fetch() 呼叫重新驗證其快取的頻率(以秒為單位)。
  • cache: 允許您控制快取行為的請求。 “no-store”完全禁用快取。
<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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!