- 1. Introduction
- 2. Séance 1 : rappels essentiels sur JavaScript asynchrone / premiers WebServices avec NodeJS
- 2.1. Rappels sur l'asynchronisme en JavaScript, les reqêtes Ajax
- 2.2. Rappels sur les Web Services REST
- 2.3. On commence l'étude de NodeJS
- 2.4. Premiers pas avec MongoDB
- 2.5. Exemple de code NodeJS pour faire le CRUD sur une base MongoDB
- 2.5.1.
Récupérez cette archive qui est une version modifiée de l'exercice précédent: TPRoutageExpressWithMongo3.zip Dezipper, allez dans le répertoire créé (TPRoutageExpressWithMongo3) et faites "npm install" Exécutez node serverCrudWithMongo (ou nodemon) Ouvrez localhost:8080 Etudiez le code, regardez en particulier comment, quand on clique sur le premier bouton GET AJAX un tableau est construit dynamiquement.
- 2.6. Ajouter le support "cross domain" à votre projet node/MongoDB
- 2.6.1.
Ajouter les lignes suivantes dans la configuration de votre serveur (fichier serverCrudWithMongo.js), ça se passe dans la configuration de express, c'est l'équivalent des "Servlet Filters" en JavaEE :
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE");
next();
});
- 2.7. Exercice à faire : utiliser un outil pour générer la documentation HTML de vos API REST
Introduction
Dans ce cours nous verrons le developpement de WebApps fullstack avec NodeJS/MongoDB/Firecloud-Firebase/cloud et avec les principaux frameworks JS front-end (React et Angular, VueJS ayant été étudié l'an dernier).
Séance 1 : rappels essentiels sur JavaScript asynchrone / premiers WebServices avec NodeJS
Rappels sur l'asynchronisme en JavaScript, les reqêtes Ajax
Support de cours :
- Des callbacks aux promesses et révision sur la gestion des erreurs, map/reduce, le parallélisme...
- async/await : des promesses plus simples au niveau syntaxique (mais moins puissantes)
- Exemples fait en classe en live coding :
- Requêtes Ajax : de XmlHttpRequest à fetch, la fetch API
- Exemples fait en classe en live coding :
On commence l'étude de NodeJS
Support de cours :
- Transparents de présentation de NodeJS
- Transparents de présentation de Express
- Livres à demander au prof pour ceux qui sont déjà à l'aise avec NodeJS.
Exercice à faire :
- Récupérez cette archive, dezippez là quelque part, avec la ligne de commande, faites cd dans le répertoire TP_ROUTAGE_EXPRESS_CRUD_AJAX créé, et exécutez la commande "npm install".
Ceci devrait créer un sous directory node_modules contenant les modules nécessaires (dans notre cas: express et multer).
- Suivez les consignes du prof et les explications au tableau.
Premiers pas avec MongoDB
Support de cours :
Installer MongoDB sur sa machine
Exemple de code NodeJS pour faire le CRUD sur une base MongoDB
- Récupérez cette archive qui est une version modifiée de l'exercice précédent: TPRoutageExpressWithMongo3.zip
- Dezipper, allez dans le répertoire créé (
TPRoutageExpressWithMongo3
) et faites "npm install
"
- Exécutez
node serverCrudWithMongo
(ou nodemon)
- Ouvrez localhost:8080
- Etudiez le code, regardez en particulier comment, quand on clique sur le premier bouton GET AJAX un tableau est construit dynamiquement.
Ajouter le support "cross domain" à votre projet node/MongoDB
Ajouter les lignes suivantes dans la configuration de votre serveur (fichier serverCrudWithMongo.js), ça se passe dans la configuration de express, c'est l'équivalent des "Servlet Filters" en JavaEE :
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Methods", "POST, GET, OPTIONS, PUT, DELETE");
next();
});
Note : vous pouvez également utiliser un des nombreux modules npm pour ajouter à votre projet le support cross-domain, par exemple le module cors. Notez bien qu'on va écrire presqu'autant de lignes de code qu'en le faisant à la main.
Exercice à faire : utiliser un outil pour générer la documentation HTML de vos API REST