Créer un serveur Node.js pour l'hébergement
Un déploiement Node.js échoue rarement à cause du langage : il échoue parce que le fichier principal est introuvable, une dépendance manque ou le serveur écoute sur une adresse inatteignable. Partez d'un serveur minimal sans dépendance, vérifiez qu'il démarre en local, puis ajoutez votre logique. Vous saurez ainsi distinguer un problème de plateforme d'un problème de code.
Structure minimale
Deux fichiers suffisent : le point d'entrée et le manifeste.
mon-app/
index.js
package.jsonLe serveur HTTP
Le code ci-dessous n'utilise que la bibliothèque standard. Il lit le port dans l'environnement, écoute sur toutes les interfaces et expose une route de santé.
const http = require("node:http");
const port = Number(process.env.PORT) || 3000;
const server = http.createServer((req, res) => {
if (req.url === "/health") {
res.writeHead(200, { "content-type": "application/json" });
res.end(JSON.stringify({ status: "ok" }));
return;
}
res.writeHead(200, { "content-type": "text/plain; charset=utf-8" });
res.end("Bonjour depuis Node.js\n");
});
server.listen(port, "0.0.0.0", () => {
console.log(`ecoute sur ${port}`);
});
process.on("SIGTERM", () => server.close(() => process.exit(0)));0.0.0.0 est indispensable : avec 127.0.0.1, le serveur n'accepte que les connexions locales et reste injoignable depuis l'extérieur. Le repli à 3000 sert uniquement au développement local ; sur la plateforme, PORT est fourni.
Le package.json
{
"name": "mon-app",
"version": "1.0.0",
"private": true,
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"engines": {
"node": ">=20"
}
}main et le script start doivent pointer vers le fichier réel. Si vous renommez index.js en server.js, mettez les trois à jour : le nom du fichier, main et la commande de démarrage.
Déployer
- Envoyez les fichiers ou clonez le dépôt dans le service.
- Lancez
npm installsi unpackage.jsondéclare des dépendances. - Vérifiez que la commande de démarrage est
node index.js(ounpm start). - Démarrez, puis lisez la console : la ligne
ecoute sur ...doit apparaître. - Appelez
/healthdepuis l'extérieur pour confirmer que le port est bien exposé.
N'envoyez pas node_modules : la plateforme installe les dépendances déclarées. En revanche, versionnez toujours package-lock.json pour des installations reproductibles.
Erreurs courantes
| Message | Cause | Correction |
|---|---|---|
Cannot find module |
dépendance absente ou mauvais chemin | npm install, vérifier main |
EADDRINUSE |
deux processus sur le même port | un seul processus, utiliser le port attribué |
| Site injoignable | écoute sur 127.0.0.1 |
écouter sur 0.0.0.0 |
PORT indéfini |
variable mal lue | lire process.env.PORT |
| Redémarrages en boucle | exception au démarrage | lire la console, corriger l'erreur |
Un serveur minimal qui répond à /health est la meilleure base de diagnostic : tant qu'il fonctionne, le problème vient de votre code et non de la plateforme.
Publicité
Cet article vous a-t-il aidé ?
À lire aussi
- Comprendre l'hébergement d'applicationsCe que la plateforme Pterodactyl gère à votre place, ce que vous devez fournir, et les limites à connaître avant de déployer.
- Configurer les variables d'environnement Node.jsLire, valider et définir des variables dans le panneau, sans jamais mettre un secret dans le dépôt Git.
- Comprendre package.json et npmLes champs utiles du manifeste, la différence entre dépendances et outils de développement, et quand utiliser npm install ou npm ci.