Apprendre à créer des applications Web avec JavaScript
Node.js, MongoDB et le Cloud à portée de main
Romain Willmann
ellipses
Chapitre I : D'Internet à la page Web15
1.1 Un monde en réseau15
1.1.1 Réseau et protocole15
1.1.2 Le Web, un réseau ordinaire16
1.1.3 Le HTML, langue du Web17
1.2 Premier pas en programmation18
1.2.1 Les outils du programmeur Web18
1.2.2 Les bases du HTML21
1.2.2 Une première page Web23
1.3 Insérer du contenu multimédia25
1.3.1 Les images25
1.3.2 Créer des liens hypertextes26
1.3.2 Du contenu riche : les iframes29
1.4 Mettre en forme des informations30
1.4.1 Les listes30
1.4.2 Les tableaux31
1.5 Récupérer des données34
1.5.1 Formulaire et champs de saisie35
1.5.2 Les choix multiples36
1.5.3 Sélection37
Exercices40
Chapitre II : JavaScript, langage du Web42
2.1 Les bases du langage43
2.1.1 Les variables44
2.1.2 Manipuler les variables45
2.1.3 Opérations mathématiques46
2.1.4 Types des variabless48
2.2 Donner des instructions en JavaScript50
2.2.1 Les fonctions50
2.2.2 Interagir avec le HTML52
2.2.3 Manipuler une page Web57
2.3 Les objets61
2.3.1 JavaScript, un langage orienté objet61
2.3.2 Utilisation d'un objet en JavaScript63
2.3.3 Les méthodes63
2.3.4 L'objet Date65
2.4 Les structures conditionnelles66
2.4.1 Tester des conditions simples : if, else66
2.4.2 Test multiple avec l'instruction Switch68
2.5 Les structures répétitives70
2.5.1 Stockage d'un ensemble de variables : l'objet Array70
2.5.2 Répétition d'instructions avec une boucle71
2.6 Stocker des informations durablement74
2.6.1 Les cookies74
2.6.2 L'objet localStorage77
Exercices80
Chapitre III : Conception d'applications Web83
3.1 Fonctionnement d'un serveur83
3.1.1 Comprendre l'architecture client-serveur83
3.1.2 Node.js pour programmer en JavaScript côté serveur85
3.1.3 Préparer l'environnement de programmation87
3.2 Envoyer des données avec un serveur91
3.2.1 Le routage91
3.2.2 Distribuer des fichiers statiques94
3.2.3 Utiliser un moteur de rendu96
3.3 Recevoir des informations d'un client101
3.3.1 Les requêtes GET101
3.3.2 Utiliser les cookies avec un serveur103
3.3.3 Les requêtes POST107
3.3.4 Recevoir les fichiers envoyés par un client109
3.4 Le HTTPS, un protocole sécurisé114
3.4.1 Fonctionnement du HTTPS114
3.4.2 Utiliser HTTPS avec Node.js115
3.4.3 Passer du HTTP vers du HTTPS117
Exercices119
Chapitre IV : Déploiement d'applications dans le Cloud121
4.1 Les éléments du déploiement121
4.1.1 Première approche121
4.1.2 Modèles économiques du Cloud122
4.1.3 Présentation de la PaaS IBM Bluemix124
4.1.4 Présentation de Cloud Foundry125
4.2 Réussir le déploiement d'une application127
4.2.1 Comprendre la phase de déploiement127
4.2.2 Décrire l'application : package.json129
4.2.3 Rédiger un manifest131
4.2.4 Configuration de l'application Node.js134
4.2.5 Déploiement avec Cloud Foundry136
4.3 Mieux structurer le développement pour faciliter le déploiement138
4.3.1Garder une trace du code écrit avec Git138
4.3.2 Utiliser Git en local139
4.3.3 Copier et mettre en ligne un projet142
4.3.4 Automatiser le déploiement d'un répertoire Git sur Bluemix144
Chapitre V : Stocker des données côté serveur147
5.1 Les bases de données147
5.1.1 Architecture147
5.1.2 Découvrir MongoDB149
5.2 Create, Read, Update, Delete151
5.2.1 Créer un document151
5.2.2 Accéder à un document152
5.2.3 Mettre une information à jour155
5.2.4 Supprimer des informations157
5.3 Sécuriser les informations d'une base de données158
5.3.1 Les fonctions de hachage : MD5 et SHA-1159
5.3.2 Le chiffrement symétrique : AES-256161
5.3.3 Sécurité et mises à jour164
5.4 Enregistrer des fichiers avec Object Storage165
Exercices168
Chapitre VI : De l'application Web au service171
6.1 Comprendre l'orientation service171
6.1.1 Définition de l'API171
6.1.2 L'API Economy et ses implications pour l'entrepreneur173
6.1.3 Présentation de l'architecture REST176
6.1.4 Utiliser les APIs avec Node.js177
6.2 Utiliser et intégrer une API178
6.2.1 Récupérer des données météorologiques178
6.2.1 Intégrer un service d'envoi d'emails180
6.2.2 Faire de la synthèse vocale en mode Cloud183
Annexes187
A1. Etudes de cas187
Netflix : des instances Node.js et un problème de routage187
Zynga : un aller-retour à 250 millions de dollars dans le Cloud189
Stripe : une entreprise, une API190
Ashley Madison : de la conception sécurisée d'une application192
A2. Quelques frameworks JavaScript pour aller plus loin193
AngularJS194
jQuery Mobile195
PhoneGap197
A.3 Corrections199
Chapitre 1 : correction199
Chapitre 2 : correction201
Chapitre 3 : correction204
Chapitre 5 : correction210
Index215