Transcription
1. 1. Introduction à l'univers de Node.js: Bienvenue dans le cours Express. Je m'appelle Shen Rogovinhi et je suis très heureuse être votre professeur
pour J'ai fait de mon mieux
pour créer le cours express le plus complet et le plus à
jour, il vous montre toutes les méthodes modernes de création d'applications
avec Express. Et j'espère qu'à la
fin de ce cours, vous deviendrez un développeur
Express expert. Alors, êtes-vous prêt à
commencer ? Alors allons-y.
2. 2. Comprendre Node.js : une introduction: Node ou Node JS est un environnement d'exécution
open source et multiplateforme permettant d' exécuter du code JavaScript
en dehors d'un navigateur. Très souvent, nous utilisons node pour
créer les services principaux, également appelés API ou interfaces de
programmation d'applications Ces services sont la source d'alimentation des applications
clientes, telles qu'une application Web
exécutée dans un navigateur ou une application
mobile exécutée sur un appareil mobile. Ces services ne sont rien autre que ce que l'utilisateur
voit et interagit Ils ne sont qu'une surface. Ils ont besoin de communiquer avec
des services situés sur le serveur ou dans le
cloud pour stocker des données, envoyer des e-mails, des notifications push, des flux de
collecte, etc. Node est idéal pour
créer des services
dorsaux hautement évolutifs, gourmands en
données et en temps réel gourmands en
données et en temps réel qui alimentent les applications de
nos clients Vous vous demandez peut-être, mais Shen, il existe d'autres outils
et frameworks pour créer des
services de backend tels que asp.net, Rails, Jango, etc. Alors, qu'y a-t-il de si spécial à propos de Node ? Eh bien, le nœud est facile
à démarrer et peut être utilisé pour le prototypage
et le développement agile, mais il peut également être utilisé pour créer des services ultra rapides et
hautement évolutifs Il est utilisé dans la production par grandes entreprises telles que PayPal, Uber, Netflix,
Walmart, etc. En fait,
PayPal a reconstruit l'une de ses
applications basées sur Java
et Spring à reconstruit l'une de ses
applications basées sur Java l'aide de Node, et a découvert que
l'application de nœud était créée deux fois plus rapidement
avec moins de personnel, 33 % de lignes de code en moins et 40 % de fichiers en moins. Mais surtout, ils doublent le nombre
de demandes traitées
par seconde tout en diminuant le
temps de réponse moyen de 35 %. Le nœud est donc un excellent choix pour créer des services hautement
évolutifs. Une autre raison d'utiliser Node est que dans l'application node,
nous utilisons JavaScript. Ainsi, si vous êtes un
développeur front-end et que vous n'avez pas de JavaScript, vous pouvez réutiliser vos
compétences en JavaScript et passer à un développeur full stack et obtenir un meilleur emploi
avec un meilleur salaire. Vous n'avez pas besoin d'apprendre un
nouveau langage de programmation. De plus, comme vous pouvez utiliser JavaScript à la fois sur le
front-end et le back-end, votre code source sera
plus propre et cohérent. Vous utiliserez la même convention de
dénomination, les
mêmes outils et les
mêmes bonnes pratiques. Enfin, une autre raison
d'utiliser Node est qu'il possède le plus grand écosystème de bibliothèques
open source à votre
disposition. Donc, pour pratiquement
toutes les fonctionnalités ou blocs de
construction que vous souhaitez
ajouter à votre application, il existe
une bibliothèque
open source que vous pouvez utiliser. Vous n'avez donc pas besoin de créer des éléments
de base à partir de zéro, et vous pouvez plutôt concentrer sur le cœur de
votre application. Ensuite, nous allons
examiner l'architecture du nœud.
3. 3. Le plan de l'architecture Node.js: Dans la dernière vidéo, nous avons
appris que node est un environnement aléatoire pour
exécuter du code JavaScript Mais qu'est-ce qu'un
environnement aléatoire ? Eh bien, avant node, nous n'
utilisons JavaScript que pour créer des applications Web
qui s'exécutent dans un navigateur. Ainsi, chaque navigateur possède
ce que nous appelons un moteur JavaScript qui prend un code JavaScript et convertit en un code compréhensible par
un ordinateur. Par exemple, Microsoft
Edge utilise Chaka, Firefox utilise Spider Monkey Dans Chrome, il en utilise huit. Et en raison de cette
variété de moteurs, code JavaScript
peut
parfois se comporter différemment d'
un navigateur à l'autre. Désormais, un navigateur fournit un environnement d'exécution
pour le code JavaScript. Par exemple, vous
savez probablement que dans un navigateur, nous avons la fenêtre
ou l'objet document. Ces objets
nous permettent de travailler avec l'environnement dans lequel
notre code s'exécute. Jusqu'en 2009, le seul moyen d' exécuter du code JavaScript
était dans un navigateur. En 2009, Ryan Dall, le créateur de Node, a eu une idée géniale Il a pensé que ce
serait formidable d'exécuter du JavaScript
en dehors d'un navigateur. Il a donc pris le moteur VD de Google, qui est le
moteur JavaScript le plus rapide du marché, et l'a intégré dans un programme C et a appelé ce programme Node. Semblable à un navigateur, node est un environnement d'exécution
pour le code JavaScript. Il contient un moteur JavaScript qui peut exécuter notre code
JavaScript, mais il possède également
certains objets qui fournissent un environnement
pour notre code JavaScript. Mais ces objets
sont différents
des objets
d'environnement présents dans un navigateur. Par exemple, nous n'
avons pas l'objet document, mais nous avons d'autres objets qui nous offrent des fonctionnalités plus
intéressantes. Par exemple, nous pouvons travailler
avec un système de fichiers, écouter
une demande sur un port donné, etc. Nous pouvons faire des choses comme ça
dans un navigateur, non ? Donc, en substance, node est un programme qui inclut
un moteur étrange ainsi des
modules supplémentaires qui nous offrent des fonctionnalités non disponibles
dans les navigateurs. Nous pouvons travailler avec un
système de fichiers ou un réseau, etc. Chrome et node partagent
le même moteur JavaScript, mais ils fournissent des
environnements d'exécution
différents pour JavaScript. J'ai vu des gens
comparer node à C sharp ou Ruby ou à d'autres langages
de programmation. Mais ces comparaisons
sont fondamentalement fausses car node n'est pas
un langage de programmation. C'est comme comparer
une voiture à une pomme. De même, le
nœud ne doit pas être comparé à des frameworks
tels que sp.net, Rails ou jango, etc. Il s'agit de frameworks permettant
de créer des applications Web. Le nœud n'est pas un framework. Il s'agit d'un environnement d'exécution pour
exécuter du code JavaScript. Ensuite, nous allons
voir comment fonctionne le nœud.
4. 4. Node.js sous le capot : mécanique opérationnelle: Plus tôt, j'ai mentionné que les applications de
nœuds
sont hautement
évolutives, en raison
de la nature non bloquante ou asynchrone du Qu'est-ce que je voulais dire par asynchrone ? Permettez-moi de vous donner une métaphore. Imaginez que vous allez au restaurant, qu'un serveur s'installe à une table, prend votre commande et la
donne à la cuisine Ensuite, ils se mettent à servir une autre table pendant que le chef
prépare votre repas. Ainsi, une même personne peut servir
de nombreuses tables différentes. Ils n'ont pas à
attendre que le chef prépare un repas avant de
servir une autre table. C'est ce que nous
appelons une architecture non bloquante ou asynchrone, et c'est ainsi qu'aucune
application ne fonctionne Le er est comme un fil
alloué pour traiter une demande. Un seul thread est donc utilisé
pour traiter plusieurs demandes. Contrairement à l'architecture non bloquante
ou asynchrone,
nous avons une architecture bloquante ou
synchrone Voyons comment cela fonctionne. Revenons donc à notre exemple de
restaurant. Imaginez que vous vous rendez un autre restaurant et que
dans ce restaurant, un serveur vous est attribué Il prend votre commande et la
donne à la cuisine. Maintenant, ils sont assis
dans la cuisine attendent que le chef
prépare votre repas. Pour le moment, ils
ne font rien d'autre. Ils attendent simplement
et ne prendront pas de
commande sur une autre table
tant que votre repas ne sera pas prêt. C'est ce que nous appelons architecture bloquante ou synchrone, et c'est ainsi que les applications
créées avec des frameworks tels asp.net ou RAILS
fonctionnent immédiatement Ainsi, lorsque nous recevons une
demande du serveur, un thread est alloué
pour traiter la demande. Dans le cadre du traitement de
cette demande, il est probable que nous
interrogerons une base de données. Et comme vous le savez, le résultat peut
parfois prendre un certain temps avant que
le résultat ne soit prêt. Lorsque la base de données
exécute la requête, ce
thread attend. Il peut être utilisé pour
servir un autre client. Nous avons donc besoin d'un nouveau fil pour
résoudre un autre client et imaginer ce qui se passerait si nous avions un grand
nombre de clients. À un moment donné,
nous allons
manquer de fils de discussion pour
servir les clients. Les nouveaux clients doivent
attendre que les fils de discussion gratuits
soient disponibles. Ou si vous ne
voulez pas qu'ils attendent, nous devons ajouter du matériel supplémentaire. Ainsi, avec ce type
d'architecture, vous n'utilisez pas les
ressources de manière efficace. C'est le problème
de l'architecture bloquante ou synchrone. Et comme je l'ai expliqué, c'est ainsi
que les applications
sont créées avec des frameworks comme
asp.net ou par defact Bien sûr, dans asp.net, il est possible d'utiliser une architecture
asynchrone, mais vous devrez faire un travail
supplémentaire pour cela En revanche, les applications de nœuds sont asynchrones par défaut, vous n'avez
donc rien à
faire de Dans le nœud, nous avons un seul thread pour
traiter toutes les demandes. Lorsqu'une demande arrive, ce thread unique est utilisé
pour traiter cette demande. Si nous devons interroger une base de données, notre thread n'a pas à attendre que la base
de données renvoie les données. Pendant que la base de données
exécute notre requête, ce thread sera utilisé
pour résoudre un autre client. Lorsque la base de données
prépare le résultat, elle place un message dans ce que
nous appelons une file d'événements. Node surveille en permanence cette file d'attente en arrière-plan. Lorsqu'il trouve un
événement dans cette file d'attente, il le retire
et le traite. Ce type d'architecture
rend Node inactif pour créer des applications
qui incluent un grand nombre d'accès au réseau de disques. Nous pouvons servir un plus
grand nombre
de clients sans avoir
à ajouter de matériel supplémentaire. C'est pourquoi les applications de nœuds
sont hautement évolutives. En revanche, le NO ne doit
pas être utilisé pour les applications gourmandes en ressources
processeur, telles que encodage
vidéo ou un service de
manipulation d'images. Dans ce type d'applications, nous avons beaucoup de calculs
qui doivent être effectués par processeur et peu d'opérations qui touchent le
système de fichiers ou le réseau. Comme aucune application n'est mono-thread,
lorsque les calculs
sont effectués
pour un client, autres clients doivent en tenir C'est pourquoi le NON ne doit pas être utilisé pour les
applications gourmandes en ressources processeur Ne doit être utilisé que pour créer des applications gourmandes en données
ou des applications en temps réel. C'est beaucoup de théorie. Ensuite, nous allons voir l'installation
du nœud et créer
notre première application de nœud.
5. 5. Configurer votre environnement Node.js: Lors de cette conférence, je vais vous
montrer des milliers de nœuds de magasins. Si vous utilisez Windows,
ouvrez Power Shell. Si vous utilisez Mac ou Linux,
ouvrez le terme no. Voyons d'abord si vous utilisez déjà node sur
votre machine ou non. Alors lancez la version Node Space Dash. Vous pouvez voir que sur cette machine, j'utilise la
version 16.16 0.0 de node Il s'agit d'une
version antérieure de No. La dernière
version stable est 18.16 0.1. Maintenant, sur votre machine, il est probable que vous n'ayez pas nœud ou que vous ayez
une version antérieure. Au fait, je veux que vous installiez
la dernière version de K. Ouvrez
donc votre navigateur et
rendez-vous sur nodjs.org Sur la page d'accueil, vous pouvez voir que nous avons deux
versions de Crowd. L'une est la version la plus stable, également connue sous le nom de
support à long terme ou version LTS, qui est recommandée
à la plupart des utilisateurs. Au moment de l'
enregistrement de cette vidéo, il s'agissait de la version 18.16 0.1 Et il y a toujours une
nouvelle version qui est expérimentale et qui
peut ne pas être stable. Je veux que vous installiez
la version LTS, en tenant
également compte du
fait qu'à l'avenir, lorsque vous
regarderez cette vidéo, il y a de fortes chances que la
version LTS soit Neva Si vous craignez que ce cours ne
devienne obsolète, ne vous inquiétez pas, car
dans ce cours, nous allons nous concentrer
sur les principes fondamentaux. Je vais donc travailler avec les modules
principaux du nœud. Ces modules de base sont stables. Ils sont là
depuis longtemps. Le code que nous allons
écrire dans ce cours
continuera donc écrire dans ce cours
continuera de fonctionner avec les
futures versions du nœud. Une fois que vous maîtrisez
les principes de base, vous pouvez toujours en apprendre davantage sur les nouvelles fonctionnalités chaque version en
examinant le faible niveau de modification. inquiétons donc pas des nouvelles fonctionnalités sophistiquées de node et concentrons-nous sur
les fondamentaux. Allons-y et installons
la dernière version du nœud. Vous pouvez voir ici,
je reçois un paquet, l'
exécute.
C'est un installateur. J'ai exécuté l'exécution des autorisations, et la préparation
commencera à être installée. Cela prendra un certain temps. Nous acceptons ensuite les
termes
et conditions et Quick Net. Vous pouvez
modifier la pièce. Je recommanderai
de s'en tenir à cela. Ensuite, encore une fois, net. Et vous pouvez vérifier à cet endroit quelles sont les causes des dépendances. Réinstallez, l'installation prendra
un certain temps, non. L'installation
est maintenant terminée. C'est assez simple et facile, et cela ne prend que quelques secondes. Et maintenant, vous avez le terminal
pour installer les dépendances. Suivez simplement les instructions
et vous êtes prêt à partir. Maintenant, revenons au terminal, véritable nœud d'écriture, espace, version
Dash Dash une fois de plus. Et vous voyez, j'ai mis à jour la version de mon
nœud vers 18.16 p. 1. Ensuite, nous allons écrire
notre premier programme de nœud.
6. 6. Vos premiers pas dans la programmation Node.js: Très bien, maintenant nous sommes prêts à écrire notre premier programme de nœud Je vais
donc rapidement créer
un dossier et y accéder avec l'application C
first underscore Et maintenant, je vais l'ouvrir dans le code
VS en utilisant le point de code. VS code est mon éditeur de code
préféré, mais vous pouvez utiliser n'importe quel autre éditeur de
code disponible
sur le marché. Je vais rapidement créer
un fichier et les J et j'écrirai une fonction
en utilisant la fonction flèche. Au fur et à mesure, je vais dire bonjour. Cela prendra un prénom en
argument, et je vais juste écrire le journal unique. Bonjour, et je vais passer l'
argument prénom. C'est mon premier programme de nœud, et je vais simplement appeler ce
programme en écrivant say hello. Je vais passer le paramètre
sous mon nom bonjour. Maintenant, revenons au terminal. Je vais exécuter ce code en utilisant Node et écrire le nom
du fichier app point js. Comme vous pouvez le constater, cela a bien fonctionné. Bonjour Shiva. Maintenant, je vais te
montrer autre chose. Je vais modifier cela et la fenêtre de journal de la
console, pour
revenir au terminal. Je vais lancer à nouveau node app
dot js. Comme vous pouvez le constater, nous avons reçu une erreur. Cette fenêtre n'est pas définie. Donc, node, comme vous l'avez fait auparavant, est
un programme C plus plus. Il inclut le moteur JavaScript
Vd de Chrome. Mais cette application est le
fichier JS que nous avons transmis au nœud. Node l'a donné à
Vd pour exécution. Maintenant, revenons à ou erreur, la fenêtre n'est pas définie. Comme c'était le cas auparavant, dans Node, nous n'avons pas les objets Window
ou Document. Ils font partie de l'environnement
d'exécution que nous obtenons avec les navigateurs. Dans node, nous avons
d'autres objets pour travailler avec des fichiers avec
le système d'exploitation, avec le réseau, etc. Et c'est ce que
vous allez
découvrir dans la section suivante. J'espère que vous avez apprécié cette section et je vous remercie de votre attention.