Recevez des articles de l'application front-end
Bien que nous ne puissions pas, pour le moment, stocker de données envoyées par l'utilisateur, puisque nous n'avons configuré aucune base de données, nous pouvons du moins veiller à recevoir correctement les données du front-end. L'application front-end contient un formulaire « Vendre un article », qui envoie une demande POST (contenant l'article à vendre) à notre route api/stuff
. Voyons comment nous pouvons capturer ces données.
Pour gérer la requête POST venant de l'application front-end, on a besoin d'en extraire le corps JSON. Pour cela, vous avez juste besoin d'un middleware très simple, mis à disposition par le framework Express. Juste après la déclaration de la constante app
, ajoutez :
app.use(express.json());
Avec ceci, Express prend toutes les requêtes qui ont comme Content-Type application/json
et met à disposition leur body
directement sur l'objet req, ce qui nous permet d'écrire le middleware POST suivant :
app.post('/api/stuff', (req, res, next) => {
console.log(req.body);
res.status(201).json({
message: 'Objet créé !'
});
});
Désormais, si vous remplissez le formulaire dans l'application front-end et que vous l'envoyez, l'objet que vous venez de créer doit s'enregistrer dans votre console Node !
En résumé
En passant votre middleware à
app.post()
au lieu deapp.use()
, il répondra uniquement aux requêtes de type POST.
Qu'avons-nous appris dans cette première partie ?
Dans cette première partie du cours, vous avez :
configuré votre environnement de développement, avec toutes les dépendances requises pour démarrer ;
démarré votre premier serveur Node et l'avez utilisé pour gérer votre première application Express ;
créé deux routes pour votre application, et vous avez également implémenté CORS pour vous assurer que le front-end pouvait effectuer des appels vers votre application en toute sécurité.
Dans la partie suivante du cours, vous ajouterez la couche de base de données MongoDB. Celle-ci est essentielle pour votre application, et permettra de la rendre entièrement dynamique.