Heim > Web-Frontend > js-Tutorial > Sollten Sie „fetch()' für interne API-Aufrufe in „getServerSideProps' (Next.js) verwenden?

Sollten Sie „fetch()' für interne API-Aufrufe in „getServerSideProps' (Next.js) verwenden?

Linda Hamilton
Freigeben: 2024-11-13 03:08:02
Original
282 Leute haben es durchsucht

Should You Use `fetch()` for Internal API Calls in `getServerSideProps` (Next.js)?

Interner API-Abruf mit getServerSideProps? (Next.js)

In Next.js können Sie mit der Funktion getServerSideProps Daten vom Server abrufen, bevor Sie eine Seite rendern, um sie für SEO geeignet zu machen. In der offiziellen Dokumentation wird jedoch davon abgeraten, fetch() zum Aufrufen interner API-Routen in getServerSideProps zu verwenden.

Grund zur Vermeidung

Der Aufruf einer internen API-Route von getServerSideProps ist überflüssig, weil beide laufen auf dem Server. Stattdessen sollte die Logik der API-Route direkt in getServerSideProps implementiert werden, um unnötige HTTP-Anfragen zu vermeiden.

Alternativer Ansatz

Zur Nutzung der Logik einer API-Route in getServerSideProps :

  • Extrahieren Sie die Abruflogik (z. B. Datenbankzugriff oder externe API-Aufrufe) in eine separate Funktion, die sowohl von der API-Route als auch von getServerSideProps gemeinsam genutzt werden kann.
  • Rufen Sie in der API-Route diese gemeinsam genutzte Funktion auf, um die Daten abzurufen und zurückzugeben.
  • Rufen Sie in getServerSideProps dieselbe gemeinsam genutzte Funktion auf Holen Sie sich die Daten direkt aus dem Server.

Beispiel

pages/api/user.js (API-Route mit gemeinsamer Logik)

import { getData } from "./userData";

export async function handler(req, res) {
  const data = await getData();
  res.status(200).json({ data });
}
Nach dem Login kopieren

pages/home.js (getServerSideProps mit shared Logik)

import { getData } from "./api/user";

export async function getServerSideProps(context) {
  const data = await getData();
  // ... other operations ...
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSollten Sie „fetch()' für interne API-Aufrufe in „getServerSideProps' (Next.js) verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage