Skip to content

Développement API - Pierre Blarre

Générateur - Routes par défaut

Icône Présentation
1 / 1

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 :

//...
var indexRouter = require('./routes/index');
var usersRouter = require('./routes/users');
//...
app.use('/', indexRouter);
app.use('/users', usersRouter);
//...

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 route GET.
  • app.post() : définit une route POST.
  • app.put() : définit une route PUT.
  • app.delete() : définit une route DELETE.

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 :

app.get('/hello', (req, res) => {
res.json({ message: 'Hello, World!' });
});

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 :

app.post('/users', (req, res) => {
const { name, email } = req.body;
// Créer un nouvel utilisateur
res.json({ message: 'Utilisateur créé avec succès', user: { name, email } });
});

PUT

Voici un exemple de route PUT qui met à jour un utilisateur existant :

app.put('/users/:id', (req, res) => {
const { id } = req.params;
const { name, email } = req.body;
// Mettre à jour l'utilisateur avec l'ID spécifié
res.json({ message: 'Utilisateur mis à jour avec succès', user: { id, name, email } });
});

DELETE

Voici un exemple de route DELETE qui supprime un utilisateur existant :

app.delete('/users/:id', (req, res) => {
const { id } = req.params;
// Supprimer l'utilisateur avec l'ID spécifié
res.json({ message: 'Utilisateur supprimé avec succès', user: { id } });
});

Exercices

  1. Ajoutez une route de chaque type (GET, POST, PUT, DELETE) à l’application Express.js générée avec express-generator, dans le fichier de route routes/users.js.
  1. Testez les routes en utilisant Postman

Postman Body

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.

  1. Servez une page HTML statique à partir du dossier public. Le fichier index.js inclut déjà la méthode app.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.

  1. Supprimez tous les fichiers de votre répertoire myapp/public, puis copiez les fichiers de notre application client précédente dans le dossier public

  2. 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 type GET /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 avec npx ou globalement avec npm.
  • On peut créer une application Express.js avec express-generator en passant l’option --view=pug pour utiliser Pug 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éthode app.use(express.static('public')).