Rumah >hujung hadapan web >tutorial js >Mengapa Titik Akhir API Next.js Saya Tidak Dikemas Kini Selepas Penggunaan?

Mengapa Titik Akhir API Next.js Saya Tidak Dikemas Kini Selepas Penggunaan?

Linda Hamilton
Linda Hamiltonasal
2024-11-02 08:31:02529semak imbas

Why are My Next.js API Endpoints Not Updating After Deployment?

Next.js API Endpoints Tidak Mengemas kini Selepas Deployment

Masalah: Data yang diambil daripada pangkalan data melalui titik akhir API kekal statik selepas penggunaan projek.

Analisis: Isu ini mungkin berpunca daripada caching. Dalam Next.js, laluan API dan Komponen Pelayan telah mendayakan cache secara lalai untuk pengoptimuman prestasi. Caching ini boleh mengganggu kemas kini data.

Penyelesaian:

Untuk mengelakkan caching dan memastikan kemas kini data dinamik, laraskan gelagat caching seperti berikut:

  • Menggunakan fetch():

    • Tambahkan pilihan pengesahan semula pada permintaan fetch() untuk menentukan selang pengesahan semula dalam beberapa saat:

      fetch('https://...', { next: { revalidate: 10 } });
    • Sebagai alternatif, tetapkan pilihan cache kepada no-store untuk melumpuhkan caching:

      fetch('https://...', { cache: 'no-store' });
  • Menggunakan Konfigurasi Segmen Laluan:

    • Dalam fail layout.js, page.js atau route.js, tambahkan kod berikut untuk melumpuhkan cache bagi segmen laluan tertentu:

      import prisma from './lib/prisma';
      
      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();
        // ...
      }

Dengan mengikuti langkah-langkah ini, anda boleh melumpuhkan caching untuk titik akhir API dan memastikan kemas kini data ditunjukkan dengan segera selepas penggunaan.

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

Kenyataan:
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