Comment configurer un serveur personnalisé dans Next.js
Next.js inclut son propre serveur avec next start
par défaut. Si vous avez un backend existant, vous pouvez toujours l'utiliser avec Next.js (ce n'est pas un serveur personnalisé). Un serveur Next.js personnalisé vous permet de démarrer un serveur de manière programmatique pour des motifs personnalisés. La plupart du temps, vous n'aurez pas besoin de cette approche. Cependant, elle est disponible si vous en avez besoin.
Bon à savoir :
- Avant de décider d'utiliser un serveur personnalisé, gardez à l'esprit qu'il ne devrait être utilisé que lorsque le routeur intégré de Next.js ne peut pas répondre aux exigences de votre application. Un serveur personnalisé supprimera des optimisations de performance importantes, comme l'Optimisation Statique Automatique.
- Lorsque vous utilisez le mode de sortie autonome, il ne trace pas les fichiers du serveur personnalisé. Ce mode produit plutôt un fichier minimal séparé
server.js
. Ces deux modes ne peuvent pas être utilisés ensemble.
Consultez l'exemple suivant d'un serveur personnalisé :
server.js
ne passe pas par le compilateur ou le processus de bundling de Next.js. Assurez-vous que la syntaxe et le code source requis par ce fichier sont compatibles avec la version actuelle de Node.js que vous utilisez. Voir un exemple.
Pour exécuter le serveur personnalisé, vous devrez mettre à jour les scripts
dans package.json
comme suit :
Alternativement, vous pouvez configurer nodemon
(exemple). Le serveur personnalisé utilise l'import suivant pour connecter le serveur avec l'application Next.js :
L'import next
ci-dessus est une fonction qui reçoit un objet avec les options suivantes :
Option | Type | Description |
---|---|---|
conf | Object | Le même objet que vous utiliseriez dans next.config.js . Par défaut {} |
dev | Boolean | (Optionnel) Si Next.js doit être lancé en mode développement. Par défaut false |
dir | String | (Optionnel) Emplacement du projet Next.js. Par défaut '.' |
quiet | Boolean | (Optionnel) Masquer les messages d'erreur contenant des informations serveur. Par défaut false |
hostname | String | (Optionnel) Le nom d'hôte derrière lequel le serveur s'exécute |
port | Number | (Optionnel) Le port derrière lequel le serveur s'exécute |
httpServer | node:http#Server | (Optionnel) Le serveur HTTP derrière lequel Next.js s'exécute |
turbo | Boolean | (Optionnel) Activer Turbopack |
L'app
retournée peut ensuite être utilisée pour laisser Next.js gérer les requêtes comme nécessaire.