Par défaut, le générateur crée deux fichiers de route dans le dossier routes
:
index.js
: définit les routes pour la page d’accueil.users.js
: définit les routes pour la page des utilisateurs.
On peut observer dans le fichier app.js
que ces fichier de routes sont importés et définies pour les URL /
et /users
:
1//...2
3var indexRouter = require('./routes/index');4var usersRouter = require('./routes/users');5
6//...7
8app.use('/', indexRouter);9app.use('/users', usersRouter);10
11//...
Les types de routes HTTP / REST
Pour rappel, les routes HTTP sont utilisées pour définir des points de terminaison (endpoints) pour les API RESTful.
Il existe plusieurs types de routes HTTP, qui sont utilisées pour effectuer différentes actions :
GET
: récupère des données du serveur.POST
: envoie des données au serveur.PUT
: met à jour des données existantes.DELETE
: supprime des données existantes.
Express.js fournit des méthodes de routage pour chaque type de route HTTP :
app.get()
: définit une routeGET
.app.post()
: définit une routePOST
.app.put()
: définit une routePUT
.app.delete()
: définit une routeDELETE
.
Vous pouvez vous référer à la documentation Express.js pour plus d’informations sur les méthodes de routage.
GET
Voici un exemple de route GET
qui renvoie un message JSON :
1app.get('/hello', (req, res) => {2 res.json({ message: 'Hello, World!' });3});
Dans cet exemple, nous définissons une route GET
pour l’URL /api/hello
qui renvoie un message JSON Hello, World!
.
POST
Voici un exemple de route POST
qui crée un nouvel utilisateur :
1app.post('/users', (req, res) => {2 const { name, email } = req.body;3 // Créer un nouvel utilisateur4 res.json({ message: 'Utilisateur créé avec succès', user: { name, email } });5});
PUT
Voici un exemple de route PUT
qui met à jour un utilisateur existant :
1app.put('/users/:id', (req, res) => {2 const { id } = req.params;3 const { name, email } = req.body;4 // Mettre à jour l'utilisateur avec l'ID spécifié5 res.json({ message: 'Utilisateur mis à jour avec succès', user: { id, name, email } });6});
DELETE
Voici un exemple de route DELETE
qui supprime un utilisateur existant :
1app.delete('/users/:id', (req, res) => {2 const { id } = req.params;3 // Supprimer l'utilisateur avec l'ID spécifié4 res.json({ message: 'Utilisateur supprimé avec succès', user: { id } });5});
Exercices
- Ajoutez une route de chaque type (
GET
,POST
,PUT
,DELETE
) à l’application Express.js générée avecexpress-generator
, dans le fichier de routeroutes/users.js
.
- Testez les routes en utilisant
Postman
Vous pouvez télécharger cette collection Postman que j’ai préparée et l’importer dans votre installation de Postman pour tester les routes. Cependant, vous devez vous créer un compte sur le site de Postman et vous identifier pour pouvoir importer les collections.
- Servez une page HTML statique à partir du dossier
public
. Le fichierindex.js
inclut déjà la méthodeapp.use(express.static(path.join(__dirname, 'public')));
.
Vous pouvez vous référer à la documentation Express.js pour plus d’informations sur le serveur de fichiers statiques.
-
Supprimez tous les fichiers de votre répertoire
myapp/public
, puis copiez les fichiers de notre application client précédente dans le dossierpublic
-
Servez le fichier
myapp/public/index.html
par défaut (depuis le routeur index.js) à partir de l’application Express.js. Au final on devrait donc avoir :- http://localhost:3000/ qui affiche notre application client avec les balles qui rebondissent.
- http://localhost:3000/users qui répond avec un message de type
GET users listing
ou architecture - Des routes
POST
,PUT
,DELETE
sur l’url/users
répondent avec des messages de typeGET /users
,POST /users
,PUT /users/:id
,DELETE /users/:id
.
Résumé
express-generator
est un générateur d’application Express.js qui crée une structure de projet de base pour une application Express.js.- On peut installer
express-generator
localement avecnpx
ou globalement avec npm. - On peut créer une application Express.js avec
express-generator
en passant l’option--view=pug
pour utiliserPug
comme moteur de template. - Les routes HTTP sont utilisées pour définir des points de terminaison (endpoints) pour les applications web.
- Express.js fournit des méthodes de routage pour chaque type de route HTTP :
app.get()
,app.post()
,app.put()
,app.delete()
. - On peut servir des fichiers statiques à partir du dossier
public
en utilisant la méthodeapp.use(express.static('public'))
.