JavaScript - Vue.js côté client et Nodejs/MongoDB côté serveur
Éric Sarrion
Éditions Eyrolles
Avant-propos1
À quoi sert JavaScript ?1
Pourquoi lire ce livre ?2
Public concerné2
Guide de lecture2
Remerciements3
Partie 1
Le langage JavaScript5
Chapitre 1
JavaScript, concepts de base7
Types de variables7
Valeurs numériques8
Valeurs booléennes8
Chaînes de caractères8
Tableaux8
Objets9
Exécuter un programme JavaScript10
Exécuter un programme JavaScript dans un navigateur10
Écrire le code JavaScript entre les balises <script> et </script>
10
Écrire le code JavaScript dans un fichier externe
12
Utiliser la méthode console.log() au lieu de la fonction alert()
13
Exécuter un programme JavaScript dans un serveur Node.js14
Différences entre le code JavaScript écrit pour le navigateur et celui écrit pour le serveur15
Déclarer les variables15
Utiliser le mot-clé const16
Utiliser le mot-clé var17
Utiliser le mot-clé let19
Et si on n'utilise ni var ni let pour définir une variable ?21
Que vaut une variable non initialisée ?21
Écrire des conditions 23
Formes d'écriture des instructions23
Expressions utilisées pour écrire les conditions25
Tests en cascade26
Faire des boucles de traitement26
Boucles avec while()27
Boucles avec for()28
Utiliser les fonctions29
Fonction affichant la liste des dix premiers entiers (de 0 à 9)29
Fonction calculant la somme des dix premiers entiers32
Fonction calculant la somme des N premiers entiers33
Conclusion34
Chapitre 2
JavaScript, concepts avancés35
Classes et objets35
Définir une classe36
Créer un objet36
Ajouter des propriétés dans une classe38
Ajouter des méthodes dans une classe39
Modifier les valeurs des propriétés d'un objet40
Utiliser le constructeur de la classe41
Fusion d'un objet dans un autre43
Les tableaux44
Créer un tableau44
Créer un tableau en utilisant les crochets
45
Créer un tableau en utilisant la classe Array
45
Accéder aux éléments du tableau46
Accès à un élément par l'indice
46
Accès à un élément par une boucle for() ou while()
48
Accès à un élément par la méthode forEach(callback)
48
Différence entre la boucle for() et la méthode forEach()
49
Ajouter des éléments au tableau :51
Ajouter un élément par l'indice
51
Ajouter un élément par la méthode push()
51
Supprimer des éléments du tableau52
Supprimer la valeur sans supprimer l'élément
52
Supprimer l'élément du tableau
53
Filtrer les éléments dans un tableau54
Utiliser la méthode filter(callback)
55
Utiliser la méthode map(callback)
55
Les chaînes de caractères56
Créer une chaîne de caractères56
Créer une chaîne en utilisant les guillemets doubles ou simples
57
Créer une chaîne en utilisant les guillemets inversés
57
Créer une chaîne en utilisant la classe String
58
Accéder aux caractères de la chaîne59
Utiliser la méthode charAt(indice)
59
Utiliser la méthode slice(indiceDebut, indiceFin)
60
Modifier une chaîne de caractères61
Utiliser les expressions régulières61
Vérifier qu'une chaîne respecte un format donné
61
Remplacer une partie de chaîne ayant un format donné
63
Traitement multitâche64
Utiliser la fonction setTimeout(callback, timeout)65
Utiliser la fonction setlnterval(callback, timeout)67
Utiliser la fonction clearlnterval(timer)68
Utiliser les promesses69
Conclusion71
Partie 2
JavaScript côté client73
Chapitre 3
Vue.js, concepts de base75
Pourquoi utiliser Vue.js ?75
Utiliser Vue.js dans une page HTML76
Une première application Vue.js76
Utiliser la réactivité78
Un premier composant81
Composant inséré dans le fichier de l'application81
Composant inséré par un fichier externe84
Ajouter des méthodes dans les composants86
Définir des méthodes dans la section methods86
Définir des propriétés calculées dans la section computed87
Utiliser des attributs dans les composants88
Utiliser les directives91
Directives v-if et v-else91
Directive v-show93
Directive v-for93
Utiliser la directive sous la forme v-for="count in counts"
93
Utiliser la directive sous la forme v-for= "(count, index) in counts"
94
Utiliser l'attribut key avec la directive v-for
94
Directive v-model95
Conclusion97
Chapitre 4
Vue-js, concepts avancés99
Gérer les événements99
Utiliser le paramètre $event101
Vérifier que la valeur saisie est inférieure à 100101
Autoriser seulement la saisie de chiffres102
Assembler les composants104
Utiliser $emit(eventName, value) pour communiquer avec le parent105
Utiliser les props pour communiquer avec ses enfants108
Effets visuels110
Lorsque l'élément apparaît110
Classes CSS utilisées par Vue.js
110
Exemple de contenu des classes CSS
111
Utilisation des classes CSS
112
Lorsque l'élément disparaît113
Classes CSS utilisées par Vue.js
113
Exemple de contenu des classes CSS
114
Utilisation des classes CSS
115
Utiliser un nom pour l'effet116
Produire un effet sur plusieurs éléments117
Exemples d'effets118
Effet de rétrécissement
118
Effet d'opacité
119
Effet de déplacement vertical
119
Conclusion120
Chapitre 5
Gérer une leste avec Vue.js121
Écrans de l'application121
Découpage de l'application en composants123
Ajouter un élément dans la liste126
Prise en compte du clic sur le bouton126
Utiliser le composant <Element>127
Modifier l'aspect de la liste grâce au code CSS.129
Supprimer un élément dans la liste130
Modifier un élément de la liste133
Transformation de l'élément <span> en élément <input>133
Sortie du champ de saisie134
Donner le focus au champ de saisie137
Conclusion139
Partie 3
JavaScript côté serveur141
Chapitre 6
Créer et utiliser les modules Node.js143
Utiliser nos propres modules143
Utiliser le répertoire node_modules144
Utiliser le fichier package.json145
Ajouter des fonctionnalités au module146
Exporter plusieurs fonctions dans le module
146
Permettre qu'une fonction soit la principale du module
148
Utiliser les modules internes à Node.js149
Lire le contenu d'un fichier149
Afficher le contenu d'un fichier sous forme de chaînes de caractères150
Utiliser la lecture du fichier non bloquante151
Utiliser les modules téléchargés avec npm152
Utilisation de la commande npm152
Utiliser un module téléchargé avec npm153
Installer le module colors dans le répertoire node_modules
154
Utiliser les fonctionnalités du module colors
154
Conclusion155
Chapitre 7
Utiliser Express avec Node.Js157
Utiliser le module http de Node.js157
Installer le module Express159
Le modèle MVC utilisé par Express162
Utiliser les routes avec Express162
Contenu initial du fichier app.js162
Différents types de routes possibles164
Analyse des routes définies dans le fichier app.js165
Ajouter une nouvelle route dans le fichier app.js167
Ajouter le traitement de la route directement dans le fichier app.js
167
Créer un fichier externe pour définir le traitement de la route
167
Afficher des vues avec Express168
Conclusion171
Chapitre 8
Utiliser MongoDB avec Node.js173
Installer MongoDB et le module mongoose173
Utiliser l'utilitaire mongo174
Installer le module mongoose174
Connexion à la base de données MongoDB175
Créer des documents176
Utiliser les schémas et les modèles177
Créer un schéma
177
Créer un modèle
177
Créer le document178
Utiliser la méthode d'instance doc.save(callback)
178
Utiliser la méthode de classe create(doc, callback)
179
Utiliser l'utilitaire mongo pour afficher les documents insérés
181
Rechercher des documents181
Écriture des conditions de recherche182
Récupération des résultats183
Utiliser le paramètre callback de la méthode find(conditions, callback)
183
Utiliser la méthode exec(callback)
184
Modifier des documents185
Supprimer des documents187
Conclusion188
Chapitre 9
Intégrer Vue.js avec Mode.js189
Écrans de l'application189
Création de l'application avec Express193
Structure de la base de données MongoDB195
Installation de la bibliothèque Axios197
Insérer un nouvel élément dans la liste199
Remplacement des paramètres text et index par le paramètre element200
Description de la bibliothèque Axios202
Utilisation de Axios avec une requête de type POST (côté client)203
Traitement de la requête de type POST (côté serveur)205
Vérification du bon fonctionnement de l'insertion dans la base de données207
Afficher les éléments de la liste207
Utilisation de Axios avec une requête de type GET (côté client)208
Traitement de la requête de type GET (côté serveur)209
Modifier un élément dans la liste211
Utilisation de Axios avec une requête de type PUT (côté client)211
Traitement de la requête de type PUT (côté serveur)213
Supprimer un élément dans la liste215
Utilisation de Axios avec une requête de type DELETE (côté client)215
Traitement de la requête de type DELETE (côté serveur)217
Conclusion219
Index221