JavaScript – page 1/85 NODE.JS SOMMAIRE Sommaire ..............................

JavaScript – page 1/85 NODE.JS SOMMAIRE Sommaire ................................................................................................................................... 1 NODE.JS ...................................................................................................................................... 3 Organisation du cours : installation des fichiers de tests ........................................................................ 3 1 – Présentation générale de Node.js.................................................................................................... 4 Références .................................................................................................................................................... 4 Node.js, qu’est-ce que c’est ? ....................................................................................................................... 5 NodeJS : interpréteur JavaScript .................................................................................................................. 8 Rappel de l’usage du JavaScript-DOM en environnement HTML (côté client)B ........................................ 10 Installation des outils : Chrome, Visual Studio Code, Bac à sable, Node.js, postman, nodemon ............. 11 2 - Rappels de JavaScript : scope, closure, événementiel ......................................................................17 JavaScript ré-introduction .......................................................................................................................... 17 Scope : portée et durée de vie des variables ............................................................................................. 17 Fonctions, variable fonction, et closures.................................................................................................... 21 3 – Premiers usages.............................................................................................................................25 Programmation événementielle ................................................................................................................ 25 Hello world ................................................................................................................................................. 26 4 – Module, package, NPM -> installation de nodemon ........................................................................32 Notion de module ....................................................................................................................................... 32 Package et NPM .......................................................................................................................................... 36 5 – http, url, method -> installation de postman ..................................................................................40 Le module intégré HTTP ............................................................................................................................. 40 Le module d’analyse d’URL « url » ............................................................................................................. 44 6 – Système de fichier .........................................................................................................................46 Le module de système de fichiers « fs » : Node.js comme serveur de fichiers ......................................... 46 7 – Le framework Express.js ................................................................................................................53 Présentation ............................................................................................................................................... 53 Documentation ........................................................................................................................................... 53 Installation .................................................................................................................................................. 53 Utilisation.................................................................................................................................................... 53 Gestion des routes : app.get ...................................................................................................................... 54 Gestion des views : template EJS ............................................................................................................... 58 Parenthèse : gestion des views sans template, avec antistrophes et JSX React........................................ 60 Inclusion de fichiers JavaScript, CSS, d’image des views : template EJS .................................................... 61 Le framework Express.js – Un exemple complet ....................................................................................... 62 8 – Evénements...................................................................................................................................63 Modèle de programation asynchrone ........................................................................................................ 63 Rappels JavaScript ...................................................................................................................................... 63 Event de Node.js ......................................................................................................................................... 64 Écouter un événement ............................................................................................................................... 66 Émettre un événement .............................................................................................................................. 67 9 – BD SQL ..........................................................................................................................................68 Présentation ............................................................................................................................................... 68 Installation de MySQL ................................................................................................................................. 68 Installation classique sur sa machine ......................................................................................................... 68 Principes d’utilisation ................................................................................................................................. 69 JavaScript – page 2/85 Création de la BD ........................................................................................................................................ 70 Création / Modification / Suppression de table (DDL : create, alter, drop) ............................................... 70 Insertion / modification / suppression de données (DML : insert, update, delete) .................................. 71 Consultation des données : select .............................................................................................................. 74 10 - Monngo DB ..................................................................................................................................79 Présentation ............................................................................................................................................... 79 Installation .................................................................................................................................................. 80 Schéma mongoose ..................................................................................................................................... 83 Edition :avril 2020 JavaScript – page 3/85 NODE.JS Organisation du cours : installation des fichiers de tests Dans le cours : Les exemples de code sont présentés dans un chapitre en vert pomme ! Les exercices à faire sont présentés dans un chapitre en jaune. • Pour suivre ce cours, le mieux est de créer un dossier dédié : « NODE-JS ». • Dans le dossier NODE-JS, mettez : • le poly de cours • des liens directs vers des sites de référence. • un dossier « node » : ils contiendra les dossiers avec les exemples. • Dans le dossier « node », on mettra un dossier par journée : • J1, • J2, • J3, • etc. Ca permettra de s’y retrouver plus facilement avec la page de suivi du cours. JavaScript – page 4/85 1 – Présentation générale de Node.js Références Node.js https://nodejs.org/fr/ API – v13.12.0 : https://nodejs.org/api/ Guide : https://nodejs.org/fr/docs/guides/ Guide – Node.js Core concept : https://nodejs.dev W3S https://www.w3schools.com/nodejs/default.asp OCR https://openclassrooms.com/fr/courses/1056721-des-applications-ultra-rapides-avec-node-js Références JavaScript – DOM – Ajax – ES6 - React • JavaScript : http://bliaudet.free.fr/article.php3?id_article=247 • DOM : http://bliaudet.free.fr/article.php3?id_article=257 • Ajax : http://bliaudet.free.fr/article.php3?id_article=249 • ES6 et React : http://bliaudet.free.fr/article.php3?id_article=329 pp 23-49 : résumé JavaScript • https://www.pierre-giraud.com/javascript-apprendre-coder-cours/ • https://developer.mozilla.org/fr/docs/Web/JavaScript Tutos très simples : JavaScript de zéro Un petit truc : vous pouvez les regarder en augmentant la vitesse jusqu’à fois 2 : ça va 2 fois plus vite ! https://www.youtube.com/watch?v=ig9EOn17vFM https://www.youtube.com/watch?v=NRmlXat3U_o https://github.com/javascriptdezero : module débutant, intermédiaire Parcours complet https://openclassrooms.com/fr/paths/185-developpeur-web JavaScript – page 5/85 Node.js, qu’est-ce que c’est ? https://www.w3schools.com/nodejs/default.asp Qu'est-ce que Node.js ? • Node.js est interpréteur JavaScript open source permettant de mettre en place un serveur web. • Node.js est gratuit. • Node.js fonctionne sur différentes plateformes (Windows, Linux, Unix, Mac OS X, etc.). Pourquoi Node.js ? • Node.js fonctionne en programmation : • événementielle, • non bloquante (asynchrone) • à fil unique (mono-thread), ce qui est très efficace en terme de mémoire. • De ce fait, il est très rapide. JavaScript – page 6/85 Événementiel, multi-thread, mono-thread • Comment un serveur classique (Apache-PHP, IIS-ASP, Tomcat-JavaEE, ) traite une demande de fichier : 1. Il envoie la tâche au système de fichiers de l'ordinateur. 2. Il attend que la réponse du système de fichiers. 3. Quand il a obtenu la réponse, il renvoie le contenu au client. 4. Il est prêt à traiter la demande suivante.  Si l’ordinateur est multi-thread, il peut traiter plusieurs tâches 1 en parallèle. • Comment Node.js traite une demande de fichier : 1. Il envoie la tâche au système de fichiers de l'ordinateur. 2. Il traite la demande suivante sans attendre la réponse du système de fichier : la demande 1 est une demande « asynchrone » (logique AJAX). 3. Lorsque le système de fichiers renvoie la réponse au serveur, le serveur met en pause, les actions en cours, renvoie le contenu au client puis reprend ses actions en cours.  De ce fait, Node.js élimine l'attente et continue avec la demande suivante (la 2). JavaScript – page 7/85 Qu'est-ce qu'un fichier Node.js ? • Les fichiers Node.js contiennent des tâches qui seront exécutées à l’occasion de certains événements. • Un événement typique est la tentative d'une personne d'accéder à un port sur le serveur. • Les fichiers Node.js doivent être démarrés sur le serveur pour avoir un effet. • Les fichiers Node.js ont l'extension ".js". Que peut faire Node.js • Node.js peut générer du contenu de page dynamique. • Node.js peut créer, ouvrir, lire, écrire, supprimer et fermer des fichiers sur le serveur. • Node.js peut collecter les données des formulaires. • Node.js peut ajouter, supprimer, modifier des données dans une base de données. JavaScript – page 8/85 NodeJS : interpréteur JavaScript Langage JavaScript – DOM – Ajax - ES6 • Node.js c’est d’abord un interpréteur de JavaScript et de EcmaScript (ES6). • La connaissance du JavaScript (JavaScript, Ajax, ES6) est utile pour faire du Node.js ! • La partie DOM du JavaScript n’est pas utile pour faire du Node.js : le DOM c’est la programmation événementielle côté client. Node.js, c’est la programmation événementielle côté serveur. On clarifiera ce point. • JavaScript : http://bliaudet.free.fr/article.php3?id_article=247 • DOM : http://bliaudet.free.fr/article.php3?id_article=257 • Ajax : http://bliaudet.free.fr/article.php3?id_article=249 • ES6 et React : http://bliaudet.free.fr/article.php3?id_article=329 pp 23-49 JavaScript – page 9/85 Interpréteur en ligne de commande Le premier usage qu’on peut faire de l’installation de node est celui d’un interpréteur JavaScript. ➢ En console node C:>node >for(let i=0, i<5; i++) console.log(2*i) 0 2 4 6 8 • On peut faire la même chose dans le mode console des navigateurs. Exécution de fichier de code On peut aussi exécuter un fichier contenant du code. ➢ Fichier mainNode.js : for(let i=0; i<5; i++) console.log(2*i) ➢ En console C:>node mainNode 0 2 4 6 8 JavaScript – page 10/85 Rappel de l’usage du JavaScript-DOM en environnement HTML (côté client)B ➢ Node est un interpréteur de JavaScript • Node ne fait que du JavaScript ! Avec Node : • La seule interface utilisateur est la console : On affiche les résultats avec console.log(). • On n’a pas de page HTML affichée. • On n’a pas d’objet « document » permettant d’accéder aux fonctionnalités du DOM. • On n’a pas d’objet « window » permettant d’accéder aux fonctionnalités du BOM, comme alert() et prompt(). • Il n’y a pas de fonction de saisie intégrée : ce n’est pas le but (solution complexe : ici). ➢ Usage JavaScript–HTML-DOM classique : la todoList • On démarre en ouvrant une page HTML • De ce fait, on accède à l’objet « document » qui permet de manipuler le DOM. • Tout se passe ensuite dans le DOM. // Initialisation de la page let madiv = document.getElementById("todolist"); // on récupère la div de travail let monh1 = document.createElement("h1"); // un h1 dans la div monh1.textContent = "M To Do List"; madiv.appendChild(monh1); etc... • Le but de la première étape sera de programmer une todoList en Node.js et de bien comprendre la gestion des événements en Node.js. • On commencera par un exercice encore plus simple : le compteur. JavaScript – page 11/85 Installation des outils : Chrome, Visual Studio Code, Bac à sable, Node.js, postman, nodemon TP 0 : installation Dans cette partie, on présente et on installe les outils qu’on va utiliser. On testera le code suivant : console.log('Hello World'); for(i=0; i<3; i++){ console.log(i); } console.log('bye'); Chrome https://www.google.com/intl/fr_fr/chrome/ • Chrome://version • Moteur JavaScript : V8 • Afficher / Options pour les développeurs / Console JavaScript • … Dock side : pour organiser la page • Source / Snippets : permet d’enregistrer des programmes de plusieurs lignes JavaScript – page 12/85 Bacs à sable Les « bacs à sable » sont des environnement de programmation en ligne. Il en existe beaucoup. Ici, on en présente 2 avec plus ou moins de détails ! https://jsfiddle.net https://codepen.io postman On installera postman plus tard. uploads/s3/ des-applications-ultra-rapides-avec-node-js-509 1 .pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager