Benutzerdefinierter Server
Next.js bringt standardmäßig einen eigenen Server mit next start
mit. Wenn Sie einen bestehenden Backend-Server haben, können Sie diesen weiterhin mit Next.js verwenden (dies ist kein benutzerdefinierter Server). Ein benutzerdefinierter Next.js-Server ermöglicht es Ihnen, einen Server für benutzerdefinierte Muster programmgesteuert zu starten. In den meisten Fällen werden Sie diesen Ansatz nicht benötigen. Er steht jedoch zur Verfügung, falls Sie aussteigen müssen.
Hinweis:
- Bevor Sie sich für einen benutzerdefinierten Server entscheiden, beachten Sie, dass dieser nur verwendet werden sollte, wenn der integrierte Router von Next.js die Anforderungen Ihrer Anwendung nicht erfüllen kann. Ein benutzerdefinierter Server entfernt wichtige Leistungsoptimierungen wie Automatische statische Optimierung.
- Ein benutzerdefinierter Server kann nicht auf Vercel bereitgestellt werden.
- Bei Verwendung des Standalone-Ausgabemodus werden benutzerdefinierte Serverdateien nicht nachverfolgt. Stattdessen wird eine separate minimale
server.js
-Datei ausgegeben. Diese können nicht zusammen verwendet werden.
Sehen Sie sich das folgende Beispiel eines benutzerdefinierten Servers an:
server.js
durchläuft nicht den Next.js-Compiler oder den Bundling-Prozess. Stellen Sie sicher, dass die Syntax und der Quellcode dieser Datei mit der aktuellen Node.js-Version, die Sie verwenden, kompatibel sind. Beispiel anzeigen.
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 oben genannte next
-Import ist eine Funktion, die ein Objekt mit den folgenden Optionen erhält:
Option | Typ | Beschreibung |
---|---|---|
conf | Object | Das gleiche Objekt, das Sie in next.config.js verwenden würden. Standard ist {} |
customServer | Boolean | (Optional) Auf false setzen, wenn der Server von Next.js erstellt wurde |
dev | Boolean | (Optional) Ob Next.js im Entwicklungsmodus gestartet werden soll. Standard ist false |
dir | String | (Optional) Speicherort des Next.js-Projekts. Standard ist '.' |
quiet | Boolean | (Optional) Fehlermeldungen mit Serverinformationen ausblenden. Standard ist false |
hostname | String | (Optional) Der Hostname, hinter dem der Server läuft |
port | Number | (Optional) Der Port, auf dem der Server läuft |
httpServer | node:http#Server | (Optional) Der HTTP-Server, hinter dem Next.js läuft |
turbo | Boolean | (Optional) Turbopack aktivieren |
Der zurückgegebene app
kann dann verwendet werden, um Anfragen nach Bedarf zu verarbeiten.