Einrichtung eines benutzerdefinierten Servers in Next.js
Next.js enthält standardmäßig einen eigenen Server mit next start
. Wenn Sie bereits über ein Backend verfügen, können Sie dieses weiterhin mit Next.js verwenden (dies ist kein benutzerdefinierter Server). Ein benutzerdefinierter Next.js-Server ermöglicht es Ihnen, einen Server programmatisch für benutzerdefinierte Muster zu starten. In den meisten Fällen werden Sie diesen Ansatz nicht benötigen. Er steht jedoch zur Verfügung, falls erforderlich.
Wichtig zu wissen:
- Bevor Sie sich für einen benutzerdefinierten Server entscheiden, sollten Sie bedenken, dass dieser nur verwendet werden sollte, wenn der integrierte Router von Next.js Ihre Anforderungen nicht erfüllen kann. Ein benutzerdefinierter Server entfernt wichtige Leistungsoptimierungen wie die Automatische statische Optimierung.
- Bei Verwendung des Standalone-Ausgabemodus werden benutzerdefinierte Serverdateien nicht nachverfolgt. Dieser Modus gibt stattdessen eine separate minimale
server.js
-Datei aus. Diese können nicht zusammen verwendet werden.
Sehen Sie sich das folgende Beispiel eines benutzerdefinierten Servers an:
server.js
wird nicht durch den Next.js-Compiler oder den Bundling-Prozess ausgeführt. Stellen Sie sicher, dass die Syntax und der Quellcode dieser Datei mit der von Ihnen verwendeten Node.js-Version kompatibel sind. Beispiel ansehen.
Um den benutzerdefinierten Server auszuführen, müssen Sie die scripts
in package.json
wie folgt aktualisieren:
Alternativ können Sie nodemon
einrichten (Beispiel). Der benutzerdefinierte Server verwendet den folgenden Import, um den Server mit der Next.js-Anwendung zu verbinden:
Der obige next
-Import ist eine Funktion, die ein Objekt mit den folgenden Optionen empfängt:
Option | Typ | Beschreibung |
---|---|---|
conf | Object | Das gleiche Objekt, das Sie in next.config.js verwenden würden. Standard: {} |
dev | Boolean | (Optional) Ob Next.js im Entwicklungsmodus gestartet werden soll. Standard: false |
dir | String | (Optional) Speicherort des Next.js-Projekts. Standard: '.' |
quiet | Boolean | (Optional) Fehlermeldungen mit Serverinformationen ausblenden. Standard: false |
hostname | String | (Optional) Der Hostname, hinter dem der Server läuft |
port | Number | (Optional) Der Port, hinter dem der Server läuft |
httpServer | node:http#Server | (Optional) Der HTTP-Server, hinter dem Next.js läuft |
turbo | Boolean | (Optional) Turbopack aktivieren |
Die zurückgegebene app
kann dann verwendet werden, um Next.js Anfragen nach Bedarf verarbeiten zu lassen.