Mise en cache des données dans les routes API Next.js : dépannage des mises à jour
Lors du déploiement d'une application Next.js qui récupère les données d'une base de données via l'API points de terminaison, il est possible de rencontrer des problèmes où les données restent statiques malgré les modifications apportées à la base de données après le déploiement. La cause première réside souvent dans les mécanismes de mise en cache mis en œuvre par Next.js en mode production.
Comprendre la mise en cache dans Next.js
Dans le répertoire de l'application et en production, Next .js met en cache les données récupérées dans les routes API et les composants du serveur par défaut. Cela optimise les performances en réduisant les requêtes de base de données et en améliorant les temps de réponse. Cependant, cela peut interférer avec les mises à jour des données.
Désactivation de la mise en cache
Pour empêcher la mise en cache, vous pouvez modifier la méthode fetch() avec les options suivantes :
<code class="javascript">fetch('https://...', { next: { revalidate: 10 } }); </code>
Configuration du segment d'itinéraire
Si vous n'utilisez pas fetch() ou si vous souhaitez configurer la mise en cache au niveau de la route, vous pouvez utiliser la configuration du segment de route. Cela vous permet de définir des options de mise en cache dans les composants d'itinéraire.
<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>
En appliquant ces ajustements de mise en cache, vous pouvez vous assurer que votre application Next.js récupère de nouvelles données de la base de données après le déploiement, en maintenant la précision et le temps réel. mises à jour.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!