Alphorm 160311113619
Alphorm 160311113619
Alphorm 160311113619
Formation
Avance de NodeJS
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
1
10/03/2016
Plan
Prsentation du formateur
Plan de formation
Objectifs de la formation
Public concern
2
10/03/2016
Prsentation du formateur
Edouard FERRARI
[email protected]
Mes rfrences :
LinkedIn : https://fr.linkedin.com/in/edouardferrari
Alphorm : http://www.alphorm.com/formateur/edouard-ferrari
Github : https://github.com/didouard
3
10/03/2016
Plan de la formation
Prsentation de la formation Lasynchrone en dtail
Prsentation de la formation Callback Hell & Pyramid of Doom
Scnario de la formation Async : Cours
4
10/03/2016
Plan de la formation
Liaison avec la persistance des donnes Bonus
Intraction avec une base de donnes relationnelle (Mysql) PM2, le monitoring
Sequelize, l'introduction Keymetric, la supervision
Sequelize, les associations
Conclusion
Intgration avec une base de donnes NoSQL : Redis
Intgration avec une base de donnes NoSQL : Mongo,
l'introduction
Intgration avec une base de donnes NoSQL : Mongo, les
associations
Intgration de MySQL ChatWithMe
Intgration de Sequelize ChatWithMe
Intgration de MongoDB ChatWithMe
5
10/03/2016
Objectifs de la formation
Apprendre et comprendre les diffrentes mthodes asynchrones de
NodeJS.
Apprendre concevoir un projet important.
6
10/03/2016
Public concern
qui sadresse cette formation :
Aux tudiants
Aux dveloppeurs
Aux chefs de projet
Aux amoureux des nouvelles technologies
Ceux qui veulent dcouvrir levent coding et lasynchrone
Ceux qui ont besoin dune architecture robuste, scalable et modulaire
Pour un projet orient Web ou pour un projet back
7
10/03/2016
Application console
APIs
8
10/03/2016
9
10/03/2016
Liens et ressources
NodeJS API : https://nodejs.org/api/ !!!
Nodecloud : http://www.nodecloud.org/
10
10/03/2016
11
10/03/2016
Scnario
de la formation
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
12
10/03/2016
Plan
Formation
13
10/03/2016
Formation
Cette formation est une seconde partie de la formation complte de
NodeJs, les fondamentaux.
Dans cette seconde partie, nous verrons ensemble :
Comment utiliser un des frameworks les plus utiliss de NodeJS : Express
Deux mthodes de code asynchrone.
Comment communiquer du code JavaScript ct client (navigateur web)
Comment sauvegarder nos donnes dans des bases de donnes ou dans des
fichiers
14
10/03/2016
15
10/03/2016
Ce quon a couvert
Les cours, les exercices et le side-project sont complmentaires.
Prochain chapitre:
Node et le Web : HTTP, Request & Express
16
10/03/2016
Node et le Web
Primtre
du module HTTP
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
17
10/03/2016
Plan
Rappel
18
10/03/2016
Rappel
Le module HTTP permet de :
Crer un client pour interagir avec un serveur HTTP.
Crer soit mme un serveur HTTP.
Manipuler les headers et user-agents
API https://nodejs.org/api/http.html
19
10/03/2016
Dans FR_260_02_00/Exercices/
Faire un script qui se connectera lURL https://httpbin.org/get en GET
Faire un script qui se connectera lURL https://httpbin.org/post en POST
avec en formData :
User : bob
Message : Bonjour !
Correction :
FR_260_02_00/Exercices/exercice_request_get_corrig.js
FR_260_02_00/Exercices/exercice_request_post_corrig.js
Formation NodeJS, avanc alphorm.com
20
10/03/2016
Correction : FR_260_02_00/Exercices/exercice_server_http_corrig.js
21
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Un rapide rappel de NodeJS
Comment lancer une requte HTTP avec le module natif.
La difficult de crer un serveur HTTP avec le module natif.
Dans la prochaine vido, nous verrons le module Request, qui est une
abstraction des modules natifs HTTP/HTTPS, et qui prend en charge
normment de fonctionnalits.
22
10/03/2016
Node et le Web
Request
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
23
10/03/2016
Plan
Le module Request
24
10/03/2016
Le module Request
Le module Request est une abstraction de diffrents modules natifs de
NodeJs.
Il est design pour tre le plus simple possible dutilisation.
Supporte :
HTTP / HTTPS
Suit les redirections 2xx
Gre les requtes en event ou stream/pipe
API https://github.com/request/request
25
10/03/2016
Dans FR_260_02_01/Exercices/
Faire un script qui se connectera lURL https://httpbin.org/get en GET
Faire un script qui se connectera lURL https://httpbin.org/post en POST
avec en formData :
User : bob
Message : Bonjour !
Correction :
FR_260_02_01/Exercices/exercice_request_get_corrig.js
FR_260_02_01/Exercices/exercice_request_post_corrig.js
Formation NodeJS, avanc alphorm.com
26
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment lancer des requtes HTTP(s) avec request
Prochaine vido :
Serveur Web avec Express
27
10/03/2016
Node et le Web
Serveur Web
avec Express
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
28
10/03/2016
Plan
Quest-ce quExpress ?
Installation
Hello word
le Generator
29
10/03/2016
Quest-ce quExpress ?
Express est une infrastructure web minimaliste, souple et rapide pour
Node.JS
Express fournit un ensemble de fonctionnalits robustes pour les
applications web et mobiles.
Grce une foule de mthodes utilitaires HTTP et de middleware mise
votre disposition, la cration d'une API robuste est simple et rapide.
Express apporte une couche fine de fonctionnalits d'application Web
fondamentales, sans masquer les fonctionnalits de Node.js que vous
connaissez et apprciez.
30
10/03/2016
Installation
Allez dans FR_260_02_02/Cours/hello_word
31
10/03/2016
Hello word
Lets code
Cours : FR_260_02_02/Cours/hello_word/index.js
32
10/03/2016
Le Generator
Le generator est un outil pour crer un squelette rapidement.
Dans FR_260_02_02/Cours/
33
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment crer un projet Express
Comment crer un serveur HTTP trs light
Comment gnrer un squelette pour express
Prochaine vido :
Express : Router les requtes
34
10/03/2016
Node et le Web
Express :
Router les requtes
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
35
10/03/2016
Plan
Quest-ce quune route ?
36
10/03/2016
37
10/03/2016
Cours : FR_260_02_03/Cours/routes/routes_basiques.js
38
10/03/2016
Cours : FR_260_02_03/Cours/routes/routes_regex.js
39
10/03/2016
Cours : FR_260_02_03/Cours/routes/routes_chaines.js
40
10/03/2016
Cours : FR_260_02_03/Cours/routes/routes_miniapp.js
41
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Ce qutait une route.
Comment dfinir une route avec Express de plusieurs faons.
Prochaine vido :
Express : Le gestionnaire de route
42
10/03/2016
Node et le Web
Express :
Le gestionnaire des routes
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
43
10/03/2016
Plan
Le gestionnaire des routes
Exemple
44
10/03/2016
45
10/03/2016
Exemple
Lets code
Cours : FR_260_02_04/Cours/gestionnaire_de_route.js
46
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comme nous pouvions grer les conditions lappel dune route
Prochaine vido :
Express : Les fichiers statiques
47
10/03/2016
Node et le Web
Express :
Les fichiers statiques
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
48
10/03/2016
Plan
Comment les fichiers statiques sont grs ?
Exemple
49
10/03/2016
50
10/03/2016
Exemple
Lets code
Cours : FR_260_02_05/Cours/*
51
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment grer les fichiers statiques
Prochaine vido :
Express : Ecrire un middleware
52
10/03/2016
Node et le Web
Express :
Ecrire un middleware
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
53
10/03/2016
Plan
Quest-ce quun middleware ?
54
10/03/2016
55
10/03/2016
56
10/03/2016
Une fois quune fonction middleware finit le cycle, toutes les fonctions
qui se trouvent aprs ne seront pas appeles.
Cours : FR_260_02_06/Cours/middleware_logger.js
57
10/03/2016
Cours : FR_260_02_06/Cours/middleware_time.js
Formation NodeJS, avanc alphorm.com
58
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Quest ce qutait un middleware
Nous avons pu voir comprendre comment Express fonctionne.
Les diffrentes possibilits offertes par les middlewares
Prochaine vido :
Express : Les moteurs de template
59
10/03/2016
Node et le Web
Express :
Les moteurs de template
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
60
10/03/2016
Plan
Intgrer un moteur de template
61
10/03/2016
Suivant les donnes que nous recevons du Model (db, api, etc), le
moteur de template va complter le template et gnrer de l'HTML.
Avec Express, on utilise beaucoup Jade.
Cours : FR_260_02_06/Cours/express_jade.js
62
10/03/2016
Cours : FR_260_02_06/Cours/express_consolidate.js
63
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Quelle est lutilit dun moteur de template.
Comment lutiliser et comment envoyer des variables au template.
Prochaine vido :
Side project : ChatWithMe
64
10/03/2016
Node et le Web
Side project :
ChatWithMe
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
65
10/03/2016
Plan
Crer le projet avec Express
Initialiser NPM
Copier le code
66
10/03/2016
Hello word
Lets code
67
10/03/2016
Ce quon a couvert
Nous avons une bonne base pour commencer le dveloppement de
notre application !
Prochain chapitre :
Lasynchrone en dtail
68
10/03/2016
Lasynchrone en dtail
Callback
Hell & Pyramid of Doom
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
69
10/03/2016
Plan
Pyramid of doom
Callback hell
70
10/03/2016
Pyramid of doom
La pyramide de la malediction
71
10/03/2016
Callback hell
En JavaScript, quand une tche est faite, la callback dfinie est appele
72
10/03/2016
Modulariser !
Node permet de crer des modules trs facilement, profitez s'en !
Issac Schlueter "Ecrire de petits modules qui font qu'une seule chose, puis les
assembler dans d'autres modules qui feront de plus grande chose. Vous ne
pouvez pas entrer dans l'enfer rappel si vous n'y allez pas."
73
10/03/2016
Exemple
Lets code
Exercices: FR_260_03_00/Exercice/code_sale.js
Corrig: FR_260_03_00/Exercice/code_sale_corrig.js
Formation NodeJS, avanc alphorm.com
74
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Quelles sont les plus gros piges de JavaScript et de NodeJS
Prochaine vido :
Async : Cours
75
10/03/2016
Lasynchrone en dtail
Async : Cours
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
76
10/03/2016
Plan
Quest-ce que Async ?
Exemples
77
10/03/2016
78
10/03/2016
Exemples
Cours: FR_260_03_01/Cours/
Formation NodeJS, avanc alphorm.com
79
10/03/2016
Exemple
Lets code
Cours: FR_260_03_00/Cours/code_sale.js
80
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Les principaux usages de async
Filter
Map
Parallel
Serie
waterfall
Prochaine vido :
Async : Exercices
81
10/03/2016
Lasynchrone en dtail
Async : Exercices
Partie 1
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
82
10/03/2016
Plan
Async-you
Waterfall
Series objects
Each
Map
83
10/03/2016
Async-you
Async-you est un programme intractif qui corrigera automatiquement
vos exercices.
Tous les exercices sont traduits en francais.
Pour installer :
$> npm install g async-you
Pour lancer :
$> async-you
84
10/03/2016
Async-you
Lets code
Exercices: FR_260_03_02/Exercices/
85
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Les principaux usages de async
Waterfall
Serie
Each
Map
Prochaine vido :
Async : Exercices Partie 2
86
10/03/2016
Lasynchrone en dtail
Async : Exercices
Partie 2
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
87
10/03/2016
Plan
Async-you
Times
Reduce
Whilst
88
10/03/2016
Async-you
Lets code
Exercices: FR_260_03_02/Exercices/
89
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Les principaux usages de async
Times
Reduce
whilst
Prochaine vido :
Les promesses avec Q: Les fondamentaux
90
10/03/2016
Lasynchrone en dtail
Les promesses avec Q :
Les fondamentaux
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
91
10/03/2016
Plan
Quest-ce que sont les promesses?
Module Q
Installation de Q
92
10/03/2016
93
10/03/2016
Module Q
Il existe plusieurs interprtations des promesses.
API : https://github.com/kriskowal/q
Cours: FR_260_03_03/Cours/introduction.js
94
10/03/2016
Installation de Q
Avec nodeJS
$> npm install q
95
10/03/2016
Lets code
Cours: FR_260_03_03/Cours/premiere_promesse.js
96
10/03/2016
Lets code
Cours: FR_260_03_03/Cours/chainer_les_actions.js
97
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Les principaux usages des promesses avec Q
Comment crer une promesse
Comment chainer plusieurs actions
Prochaine vido :
Les promesses avec Q : les conditions et les boucles
98
10/03/2016
Lasynchrone en dtail
Les promesses avec Q :
Les conditions et les
boucles
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
99
10/03/2016
Plan
Utilisation de condition dans une promesse
100
10/03/2016
Lets code
Cours: FR_260_03_05/Cours/condition.js
101
10/03/2016
Lets code
Cours: FR_260_03_05/Cours/boucle.js
102
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment grer les conditions et les boucles
Prochaine vido :
Les promesses avec Q : la gestions des erreurs
103
10/03/2016
Lasynchrone en dtail
Les promesses avec Q :
La gestion des erreurs
et les accs directs
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
104
10/03/2016
Plan
La gestion des erreurs avec Q
105
10/03/2016
En plus des .then(), on peut ajouter un .fail() qui rcuprera les erreurs
non traites.
Cours: FR_260_03_06/Cours/erreurs.js
106
10/03/2016
Cours: FR_260_03_06/Cours/manipulation_object.js
107
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment grer les erreurs
Comment accder en direct certaines fonctions de Q
Prochaine vido :
Les promesses avec Q : Flow, Timers et I/O
108
10/03/2016
Lasynchrone en dtail
Les promesses avec Q :
Flow, Timers et I/O
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
109
10/03/2016
Plan
Composer un flow
Les timers
110
10/03/2016
Composer un flow
Les promesses de base supportent seulement un seul flow la fois. Q permet de
grer plusieurs flow.
Imaginons, nous avons deux flow :
Un qui fait une requte
Un qui log la tche
Si une des sous-promesses est en erreur, toutes les promesses sont arrtes et
mises en "fail".
Cours: FR_260_03_07/Cours/composer_un_flow.js
111
10/03/2016
Les timers
Les promesses ont deux systmes de contrle de temps :
.delay(ms)
.timeout(ms)
Cours: FR_260_03_07/Cours/timers.js
112
10/03/2016
Cours: FR_260_03_07/Cours/module_io.js
113
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment composer un flow complex
Comment utiliser les timers
Comment utiliser les modules I/O
Prochaine vido :
Les promesses : Exercices Partie 1
114
10/03/2016
Lasynchrone en dtail
Les promesses :
Exercices Partie 1
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
115
10/03/2016
Plan
promise-it-wont-hurt
Accomplir une promesse
Rejeter une promesse
Rejet ou ne pas rejeter
Toujours asynchrones
Valeurs et promesses
Lever une erreur
116
10/03/2016
promise-it-wont-hurt
Promise-it-wont-hurt est un programme intractif qui corrigera
automatiquement vos exercices.
Tous les exercices sont traduits en franais.
Pour installer :
$> npm install g promise-it-wont-hurt
Pour lancer :
$> promise-it-wont-hurt
117
10/03/2016
promise-it-wont-hurt
Lets code
Exercices: FR_260_03_08/Exercices/
118
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons revu les principaux usages des promises.
Prochain chapitre :
Les promesses : Exercices Partie 2
119
10/03/2016
Lasynchrone en dtail
Les promesses :
Exercices Partie 2
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
120
10/03/2016
Plan
promise-it-wont-hurt
Utiliser qfcall
121
10/03/2016
promise-it-wont-hurt
Lets code
Exercices: FR_260_03_09/Exercices/
122
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons revu les principaux usages des promises.
Prochain chapitre :
Communication temps rel
123
10/03/2016
Socket.io
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
124
10/03/2016
Plan
Un peu d'histoire
WebSocket
125
10/03/2016
Un peu d'histoire
Avant, pour mettre jour une information sur une page web :
126
10/03/2016
Un peu d'histoire
Vu qu'on veut mettre jour souvent, on baisse le rafraichissement
127
10/03/2016
Un peu d'histoire
Puis, nous utilisions le "long pooling"
128
10/03/2016
WebScocket
Les WebSocket permettent de fournir un mcanisme pour les
navigateurs qui ont besoin de communiquer
Avec un navigateur
Des deux sens (upload, download)
et reste ouvert aprs avoir reu les donnes
129
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
A partir de quelle problmatique les websocket et socket.io ont t crs
Une rapide overview du protocole websocket.
Prochaine vido :
Intgration dans Express
130
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
131
10/03/2016
Plan
Ajouter le code ct serveur
132
10/03/2016
Cours
133
10/03/2016
Cours
134
10/03/2016
135
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu comment prparer un projet pour
socket.io
Prochaine vido :
Projet : ChatWithMe, le code backend
136
10/03/2016
137
10/03/2016
Plan
Arborescence des objets et des Managers
Lets code !
138
10/03/2016
userManager User
RoomManager room
Message
139
10/03/2016
140
10/03/2016
141
10/03/2016
Lets code
Side project: ChatWithMe/
142
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons dvelopp le code backend pour les
requtes suivantes :
JoinRoom
QuitRoom
SetName
NewMessage
Prochaine vido :
Side Project : ChatWithMe, le code frontend
143
10/03/2016
144
10/03/2016
Plan
Arborescence des fichiers
Lets code !
145
10/03/2016
Realtime.js Room
146
10/03/2016
147
10/03/2016
Lets code
Side project: ChatWithMe/
148
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons dvelopp le code frontend pour les
requtes suivantes :
joinRoom
roomList
roomUsers
roomMessages
roomNewMessage
roomNewUser
Prochain chapitre :
Liaison avec la persistance des donnes
Formation NodeJS, avanc alphorm.com
149
10/03/2016
150
10/03/2016
Plan
Introduction Mysql
Lets code
151
10/03/2016
Introduction Mysql
MySQL est un systme de gestion de bases de donnes relationnelles
(SGBDR).
Formation complte sur Alphorm :
http://www.alphorm.com/tutoriel/formation-en-ligne-mysql-1z0-883
Mysql est une base de donnes la plus utilise dans le monde et trs
performante.
Tous les langages ont dvelopp un driver pour interagir avec Mysql.
152
10/03/2016
Informations :
Hostname process.env.IP
Port - 3306 (Port par dfaut de Mysql)
User process.env.C9_USER
Password - `` (Pas de mot de passe)
Database - c9 (Le nom de la base de donnes)
153
10/03/2016
Exemple
Lets code
Cours : FR_260_05_00/Cours/
154
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment utiliser mysql avec NodeJs
Prochaine vido :
Sequelize, lintroduction
155
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
156
10/03/2016
Plan
Quest ce quun ORM ?
Sequelize
Lets code
157
10/03/2016
158
10/03/2016
Sequelize
Sequelize est un ORM bas sur les promesses pour NodeJS
http://docs.sequelizejs.com/en/latest/
159
10/03/2016
Sequelize
La premire chose faire est de dfinir les modles
160
10/03/2016
Sequelize
De plus, Sequelize fonctionne avec les promises.
161
10/03/2016
Lets code
Maintenant, nous allons voir les grandes utilisations de Sequelize:
La configuration
La cration de tables
Linsertion de donnes
Comment retrouver ses donnes
Cours : FR_260_05_01/Cours/
162
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment utiliser sequelize
Comment viter les piges
Et partir sur de bonne base
Prochaine vido :
Sequelize, les associations
163
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
164
10/03/2016
Plan
Les diffrents types de liaison
Lets code
165
10/03/2016
Les One-to-One
BelongsTo: Appartient , un Post appartient un User.
HasOne: un object
HasMany: plusieurs object, un User peut avoir plusieurs Post.
http://docs.sequelizejs.com/en/latest/docs/associations/
166
10/03/2016
167
10/03/2016
Exemple
Lets code
Cours : FR_260_05_02/Cours/association.js
168
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment faire des associations de table
Prochaine vido :
Interaction avec une base de donnes NoSQL : Redis
169
10/03/2016
170
10/03/2016
Plan
Introduction Redis
Lets code
171
10/03/2016
Introduction Redis
Redis (de l'anglais REmote DIctionary Server qui peut tre traduit par
serveur de dictionnaire distant et jeu de mots avec Redistribute).
Cest un systme de gestion de bases de donnes clef-valeur scalable,
trs hautes performances, crit avec le langage de programmation C.
Il fait partie du mouvement NoSQL et vise fournir les performances les
plus leves possibles.
http://redis.io/commands
172
10/03/2016
173
10/03/2016
Exemple
Lets code
Cours : FR_260_05_03/Cours/
174
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment utiliser redis avec NodeJs
Prochaine vido :
Interaction avec une base de donnes NoSQL : MongoDB, lintroduction
175
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
176
10/03/2016
Plan
Introduction MongoDB
CRUD
177
10/03/2016
Introduction MongoDB
MongoDB de l'anglais humongous qui peut tre traduit par norme
178
10/03/2016
179
10/03/2016
CRUD
Nous allons voir les principales utilisations de mongodb avec
mongoose.
Create : FR_260_05_05/Cours/create.js
Read: FR_260_05_05/Cours/read.js
Update: FR_260_05_05/Cours/update.js
Delete: FR_260_05_05/Cours/delete.js
180
10/03/2016
181
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment utiliser MongoDB avec mongoose.
Prochaine vido :
Interaction avec une base de donnes NoSQL : MongoDB, les associations
182
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
183
10/03/2016
Plan
Les associations
Lets code
184
10/03/2016
Les associations
De la mme faon quavec MySQL, nous allons lier les users et les posts.
185
10/03/2016
Exemple
Lets code
Cours : FR_260_05_05/Cours/associate.js
186
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment faire des associations de documents avec MongoDb
Prochaine vido
Intgration de MySQL ChatWithMe
187
10/03/2016
Intgration de MySQL
ChatWithMe
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
188
10/03/2016
Plan
Lets code
189
10/03/2016
Exemple
Lets code
Side project: ChatWithMe
190
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons intgr Mysql ChatWithMe
Prochaine vido
Intgration de Sequelize ChatWithMe
191
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
192
10/03/2016
Plan
Lets code
193
10/03/2016
Exemple
Lets code
Side project: ChatWithMe
194
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons intgr Sequelize ChatWithMe
Prochaine vido
Intgration de MongoDB ChatWithMe
195
10/03/2016
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
196
10/03/2016
Plan
Lets code
197
10/03/2016
Exemple
Lets code
Side project: ChatWithMe
198
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons intgr Mysql ChatWithMe
Prochaine chapitre
Intgration de Sequelize ChatWithMe
199
10/03/2016
Bonus
PM2, le monitoring
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
200
10/03/2016
Plan
Quest ce que PM2 ?
Les logs
Les limites
201
10/03/2016
Installation :
$> npm install g pm2
202
10/03/2016
203
10/03/2016
204
10/03/2016
205
10/03/2016
Les logs
Grer les logs
$> pm2 logs [--raw] # Affiche tous les logs
$> pm2 flush # Vide tous les logs
206
10/03/2016
207
10/03/2016
Les limites
Le module cluster de NodeJS ne permet pas de faire fonctionner
socket.io
https://github.com/elad/node-cluster-socket.io
Vu que PM2 utilise le module natif pour les clusters, PM2 ne supporte
pas non plus les socket.io.
208
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Un projet de monitoring de processus NodeJS pour une mise en production !
Lancer en cluster un processus
Grer les logs
Prochaine vido :
Keymetrics, la supervision
209
10/03/2016
Bonus
Keymetrics,
la supervision
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
210
10/03/2016
Plan
Quest-ce que Keymetrics ?
Inscription
Ajout de sondes
211
10/03/2016
212
10/03/2016
Inscription
Inscription :
https://app.keymetrics.io/#/login
213
10/03/2016
214
10/03/2016
215
10/03/2016
Exemple
216
10/03/2016
Ce quon a couvert
Dans cette vido, nous avons vu :
Comment superviser un projet NodeJS
Comment remonter certaines informations mtier
Prochain chapitre :
La conclusion !
217
10/03/2016
Conclusion
douard FERRARI
Site : http://www.alphorm.com Formateur et Consultant indpendant
Blog : http://blog.alphorm.com Contact : [email protected]
Formation NodeJS, avanc alphorm.com
218
10/03/2016
Ce quon a couvert
1. Comment installer et mettre en place un Express 1. Comment sauvegarder des donnes en couvrant les
1. Systme de route bases de donne suivante :
2. Gestion des fichiers statiques 1. Mysql
3. Comment ajouter nos propres middlewares 2. MariaDB
4. Comment utiliser un moteur de template 3. SQLite
4. Postgres
2. Deux diffrentes mthodes de dveloppement 5. MSSql
asynchrone: 6. Redis
1. Async 7. MongoDB
2. Les promesses avec Q
2. Dvelopper un projet NodeJS en MVC.
3. La communication en temps raille avec les clients
(front-end) grce Socket.io 3. Comment monitorer et superviser le projet avec
PM2 et Keymetrics
219
10/03/2016
220
10/03/2016
A bientt
Keep in touch !
E-mail : [email protected]
Linkedin : https://fr.linkedin.com/in/edouardferrari
Twitter : https://twitter.com/edouard_ferrari
Alphorm : http://www.alphorm.com/formateur/edouard-ferrari
221