Définit un saut de ligne simple
Apprenez à servir des fichiers statiques avec ExpressJS grâce à ce tutoriel pas à pas pour débutants. Exemples de code et explications inclus.
Dans ce tutoriel, nous allons découvrir comment utiliser ExpressJS pour servir des fichiers statiques, comme des images ou des scripts, que les clients peuvent télécharger directement depuis le serveur. Ce guide est conçu pour les débutants, avec des explications détaillées et des exemples pratiques.
Les fichiers statiques sont des fichiers que le serveur envoie aux clients tels quels, sans modification. Cela inclut des images, des fichiers CSS, des scripts JavaScript, etc. Avec ExpressJS, un framework populaire pour Node.js, vous pouvez configurer cela facilement, mais ce n’est pas activé par défaut. Nous allons apprendre à le faire étape par étape.
Pour commencer, vous devez créer un répertoire pour vos fichiers statiques et activer une fonctionnalité spéciale dans ExpressJS. Suivez ces instructions :
Voici un exemple simple pour servir des fichiers statiques depuis un dossier nommé "public". Ce code utilise une fonctionnalité intégrée d’ExpressJS appelée "middleware". Nous allons l’expliquer en détail juste après.
var express = require('express'); var app = express(); app.use(express.static('public')); app.listen(3000);
Analysons ce code ligne par ligne pour que vous compreniez chaque partie, même si vous êtes totalement novice :
Note : Express cherche les fichiers dans le dossier "public" par rapport à l’emplacement du script. Le nom "public" n’apparaît pas dans l’URL. Par exemple, pour une image "testimage.jpg" dans "public", l’URL sera simplement "/testimage.jpg".
Pour vérifier que cela fonctionne, ajoutons une image et affichons-la via une vue Pug. Voici un exemple complet :
var express = require('express'); var app = express(); app.use(express.static('public')); app.set('view engine', 'pug'); app.set('views', './views'); app.get('/static_files', function(req, res){ res.render('static_files'); }); app.listen(3000);
Et dans le fichier views/static_files.pug
:
html head body h3 Tester le service de fichiers statiques : img(src="/testimage.jpg" alt="Image de test")
Voici ce que fait ce code :
Pour tester, placez une image nommée "testimage.jpg" dans "public", lancez le serveur avec node index.js
, et visitez http://localhost:3000/static_files.
Vous pouvez aussi servir des fichiers depuis plusieurs dossiers. Voici comment :
var express = require('express'); var app = express(); app.use(express.static('public')); app.use(express.static('images')); app.listen(3000);
Ce code ajoute un second dossier statique :
Pour mieux organiser vos URL, vous pouvez ajouter un préfixe comme "/static". Voici un exemple :
var express = require('express'); var app = express(); app.use('/static', express.static('public')); app.listen(3000);
Voici ce qui change :
Pour inclure un fichier comme "main.js" dans une page HTML, utilisez : <script src="/static/main.js"></script>
. Cela aide à distinguer les fichiers de différents dossiers statiques.
Lorsqu’un utilisateur tente d’accéder à un fichier statique qui n’existe pas dans votre dossier "public", ExpressJS ne renvoie rien par défaut. Pour améliorer l’expérience utilisateur et gérer ces erreurs, vous pouvez ajouter un middleware personnalisé qui renvoie une erreur 404 avec un message clair. Voici comment faire, étape par étape.
Ce code ajoute une gestion d’erreur personnalisée après la configuration des fichiers statiques. Il intercepte les requêtes non satisfaites et renvoie un message d’erreur.
var express = require('express'); var app = express(); app.use(express.static('public')); app.use(function(req, res, next) { res.status(404).send("Désolé, ce fichier n'existe pas !"); }); app.listen(3000);
Analysons ce code ligne par ligne pour que même un débutant comprenne chaque partie :
express.static
pour servir les fichiers statiques depuis le dossier "public". Si une requête correspond à un fichier existant, elle s’arrête ici. Sinon, elle passe à la suite.Pour tester, essayez d’accéder à une URL comme http://localhost:3000/fichier-inexistant.jpg. Si le fichier n’est pas dans "public", vous verrez le message "Désolé, ce fichier n’existe pas !".
Vous savez maintenant comment servir des fichiers statiques avec ExpressJS, utiliser plusieurs dossiers, et ajouter des préfixes d’URL. Explorez davantage avec la documentation officielle d’ExpressJS.