Mengapa Data Laluan API Next.js Saya Tidak Dikemas Kini Selepas Penggunaan?

DDD
Lepaskan: 2024-11-01 17:22:30
asal
740 orang telah melayarinya

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

Caching Data dalam Laluan API Next.js: Kemas Kini Penyelesaian Masalah

Apabila menggunakan aplikasi Next.js yang mengambil data daripada pangkalan data melalui API titik akhir, adalah mungkin untuk menghadapi isu di mana data kekal statik walaupun perubahan dibuat dalam pangkalan data selepas penggunaan. Punca utama selalunya terletak pada mekanisme caching yang dilaksanakan oleh Next.js dalam mod pengeluaran.

Memahami Caching dalam Next.js

Dalam direktori apl dan pada pengeluaran, Next .js cache data yang diambil dalam laluan API dan komponen pelayan secara lalai. Ini mengoptimumkan prestasi dengan mengurangkan pertanyaan pangkalan data dan meningkatkan masa tindak balas. Walau bagaimanapun, ia boleh mengganggu kemas kini data.

Melumpuhkan Cache

Untuk mengelakkan caching, anda boleh mengubah suai kaedah fetch() dengan pilihan berikut:

  • sah semula: Menentukan kekerapan panggilan fetch() harus mengesahkan semula cachenya, dalam beberapa saat.
  • cache: Membolehkan anda mengawal gelagat caching daripada permintaan itu. "no-store" melumpuhkan cache sepenuhnya.
<code class="javascript">fetch('https://...', { next: { revalidate: 10 } }); </code>
Salin selepas log masuk

Konfigurasi Segmen Laluan

Jika anda tidak menggunakan fetch() atau ingin mengkonfigurasi caching pada peringkat laluan, anda boleh menggunakan konfigurasi segmen laluan. Ini membolehkan anda menetapkan pilihan caching dalam komponen laluan.

<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>
Salin selepas log masuk

Dengan menggunakan pelarasan caching ini, anda boleh memastikan bahawa aplikasi Next.js anda mendapatkan semula data baharu daripada pangkalan data selepas penggunaan, mengekalkan ketepatan dan masa nyata kemas kini.

Atas ialah kandungan terperinci Mengapa Data Laluan API Next.js Saya Tidak Dikemas Kini Selepas Penggunaan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!