Tutoriel Node.js pour les débutants. Partie 1





Bonjour mes amis!



Je vous présente la traduction de ce guide de Node.js .



Autres parties:



Partie 1

Partie 2

Partie 3

Partie 4



Introduction Ă  Node.js



Node.js est un runtime JavaScript ouvert et multiplateforme. C'est une excellente solution pour presque tous les projets.



Node.js exécute le moteur JavaScript V8, le cœur de Google Chrome, en dehors du navigateur. Cela rend Node.js très productif.



Les applications Node.js s'exécutent comme un processus unique, sans créer de nouveau thread pour chaque demande. Node.js fournit un ensemble de primitives d'E / S asynchrones dans la bibliothèque standard, qui protège JavaScript du blocage et, généralement, les bibliothèques dans Node.js sont écrites à l'aide de paradigmes non bloquants, ce qui fait du comportement de blocage une exception plutôt qu'une règle.



Lorsque Node.js effectue une opération d'E / S, telle que la lecture (données) du réseau, l'accès à une base de données ou à un système de fichiers, au lieu de bloquer le thread et d'attendre la fin des cycles de processeur, Node.js continuera d'exécuter l'opération après avoir reçu une réponse.



Cela permet à Node.js de traiter des milliers de requêtes en même temps via un seul serveur sans avoir besoin de créer un système garantissant la cohérence des threads, ce qui peut devenir une source d'erreurs graves.



Un avantage significatif de Node.js est que des millions de développeurs écrivant JavaScript pour le navigateur ont désormais la possibilité d'écrire du code côté serveur en plus du code côté client sans avoir à apprendre un langage (de programmation) complètement différent.



Dans Node.js, les nouvelles normes ECMAScript peuvent être utilisées sans problème, vous n'avez pas besoin d'attendre que tous les utilisateurs mettent à jour leur navigateur - vous décidez quelle version d'ECMAScript utiliser en changeant la version de Node.js, vous pouvez également ajouter des fonctionnalités expérimentales en exécutant Node.js avec des drapeaux (correspondants).



Un grand nombre de bibliothèques


Avec sa structure simple, npm est le moteur de la croissance rapide de l'écosystème Node.js, avec plus d'un million de packages open source actuellement enregistrés avec npm que vous pouvez utiliser gratuitement.



Exemple d'application Node.js


Le cas d'utilisation le plus courant pour Node.js est de créer un serveur Web:



const http = require('http')

const hostname = '127.0.0.1'
const port = process.env.PORT 

const server = http.createServer((req, res) => {
    res.statusCode = 200
    res.setHeader('Content-Type', 'text/plain')
    res.end('Hello World!\n')
})

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`)
})


Tout d'abord, nous incluons le module http .



Node.js dispose d'une fantastique bibliothèque standard qui inclut un support réseau de premier ordre.



La méthode createServer() httpcrée un nouveau serveur HTTP et le renvoie.



Le serveur est configuré pour écouter sur un port et un hôte spécifiques. Lorsque le serveur est prêt, la fonction de rappel démarre, dans ce cas, informant que le serveur est en cours d'exécution.



Lors d'une nouvelle demande d'événement de demande d'appel , contenant deux objets: la demande (objet http.IncomingMessage (message entrant)) et la réponse (l'objet http.ServerResponse (réponse du serveur)).



Ces objets sont requis pour gérer un appel HTTP.



Le premier objet contient les détails de la demande. Dans notre exemple, il n'est pas utilisé, mais vous pouvez accéder aux en-têtes de demande et à ses données.



Le deuxième objet est utilisé pour fournir des données au demandeur.



Dans ce cas, Ă  travers



res.statusCode = 200


nous définissons la propriété statusCode sur 200 comme indicateur du succès de la demande.



Nous définissons l'en-tête Content-Type (contenu ou type de contenu)



res.setHeader('Content-Type', 'text/plain')


et fermez la réponse en ajoutant du contenu comme argument à end():



res.end('Hello World\n')


Framework et outils Node.js


Node.js est une plate-forme de bas niveau. Afin de répondre aux besoins des développeurs, des milliers de bibliothèques différentes ont été créées.



Au fil du temps, beaucoup d'entre eux sont devenus très populaires. En voici une liste:





Node.js



Croyez-le ou non, Node.js n'a que 10 ans.



En comparaison, JavaScript existe depuis 24 ans, et le Web depuis 30.



10 ans est un temps court pour la technologie, mais il semble parfois que Node.js l'a toujours été.



J'ai rencontré Node.js alors que seulement 2 ans se sont écoulés depuis son apparition, mais même alors, malgré les informations limitées, il a estimé qu'il avait un grand avenir.



Dans cette section, nous examinons l'historique global de Node.js.



Un peu d'histoire


JavaScript est un langage de programmation inventé par Netscape en tant qu'outil de script pour manipuler des pages Web dans le navigateur Netscape Navigator .



Une partie du modèle commercial de Netscape consistait à vendre des serveurs Web qui comprenaient Netscape LiveWire, qui était capable de créer des pages dynamiques à l'aide de JavaScript côté serveur. Malheureusement, Netscape LiveWire a échoué et JavaScript côté serveur n'était pas populaire jusqu'à Node.js.



L'un des facteurs clés de la popularité de Node.js est le temps (de son apparition). JavaScript avait été reconnu comme un langage (de programmation) sérieux quelques années plus tôt grâce aux applications "Web 2.0" (comme Flickr, Gmail, et autres) qui montraient au monde à quoi pourrait ressembler le Web moderne.



Les moteurs JavaScript se sont également considérablement améliorés, les navigateurs s'efforçant d'améliorer les performances au profit des utilisateurs. Les principales équipes de développement de navigateurs ont travaillé dur pour améliorer la prise en charge de JavaScript et l'exécuter le plus rapidement possible. Le moteur qui utilise Node.js, V8 (également connu sous le nom de Chrome V8, le moteur JavaScript ouvert de Chromium) est sorti vainqueur de cette compétition.



Node.js est apparu au bon moment et au bon endroit. Heureusement, ce n'est pas la seule raison de sa popularité. Le projet contenait un grand nombre d'idées et d'approches innovantes pour le développement JavaScript côté serveur qui ont plu à de nombreux développeurs.



2009


  • Node.js est apparu
  • Npm est apparu


2010


  • Express
  • Socket.io


2011


  • npm version 1.0
  • Node.js: LinkedIn, Uber .
  • hapi


2012


  • Node.js


2013




2014


  • : Node.js io.js ( — git) ES6


2015




2016




2017


  • npm
  • Node.js 8
  • HTTP/2
  • V8 Node.js , Node.js JS Chrome
  • 3 npm


2018


  • Node.js 10
  • Prise en charge expĂ©rimentale des modules ES avec l'extension .mjs


Comment installer Node.js?



Node.js peut être installé de différentes manières.



Les distributions pour les principales plateformes sont disponibles sur le site officiel .



Un moyen très pratique d'installer Node.js consiste à utiliser un gestionnaire de packages. Chaque système d'exploitation a le sien.



Sur macOS, il s'agit de Homebrew , qui facilite l'installation de Node.js Ă  l'aide de la ligne de commande:



brew install node


Une liste des gestionnaires de packages pour Linux, Windows et autres systèmes peut être trouvée ici .



nvmEst un moyen populaire d'exécuter Node.js. Il vous permet de basculer facilement entre les versions de Node.js, d'installer de nouvelles versions pour les tests et d'annuler leur installation en cas de problème.



Il est également très utile lors du test de code dans les anciennes versions de Node.js.



Pour plus de détails, nvmsuivez ce lien .



Mon conseil est d'utiliser l'installateur officiel si vous débutez et n'avez jamais utilisé Homebrew auparavant.



Après avoir installé Node.js, vous pouvez accéder à l'exécutable nodesur la ligne de commande.



Dans quelle mesure avez-vous besoin de connaître JavaScript pour fonctionner avec Node.js?



En tant que débutant, il est difficile de déterminer votre niveau de programmation.



Il est également difficile de déterminer où se termine JavaScript et où Node.js commence, et vice versa.



Personnellement, je suggérerais de bien comprendre les concepts de base JavaScript suivants avant de plonger dans Node.js:



  • Syntaxe ou structure lexicale
  • Expressions (essentiellement la mĂŞme syntaxe)
  • Types de donnĂ©es)
  • Variables
  • Les fonctions
  • Ce mot clĂ©
  • Fonctions flĂ©chĂ©es
  • Cycles
  • Zone de visibilitĂ©
  • Tableaux
  • Modèles ou littĂ©raux de chaĂ®ne
  • Un point-virgule (probablement des cas d'utilisation obligatoire, par exemple, lorsque vous travaillez avec IIFE)
  • RĂ©gime strict
  • ECMAScript 6, 2016, 2017


La maîtrise de ces concepts est le début du chemin d'un développeur full-stack professionnel.



Les concepts suivants sont Ă©galement essentiels pour comprendre la programmation asynchrone, qui est une partie fondamentale de Node.js:



  • Programmation et rappels asynchrones (rappels)
  • Minuteries (compteurs)
  • Promesses (promesses)
  • Async / attente
  • Des courts-circuits
  • Boucle d'Ă©vĂ©nements (pile d'appels)


Différence entre Node.js et le navigateur



JavaScript peut être utilisé à la fois dans le navigateur et dans Node.js.



Cependant, la création d'applications de navigateur est très différente de la création d'applications Node.js.



Bien que JavaScript soit utilisé dans les deux cas, il existe des différences clés spécifiques au développement.



Du point de vue du front-end JavaScript (développeur front-end - la partie cliente de l'application), le développement d'applications sur Node.js présente un avantage significatif, qui s'exprime par le fait que partout, sur le client et sur le serveur, un langage de programmation est utilisé - JavaScript.



Il s'agit d'une excellente occasion de devenir une pile complète: nous savons tous combien il est difficile d'apprendre pleinement et profondément un nouveau langage de programmation, et dans ce cas, il n'y a pas un tel besoin.



La seule chose à étudier est l'écosystème.



Dans le navigateur, la plupart du temps, nous devons traiter avec le DOM et d'autres API Web comme les cookies. Bien sûr, ils n'existent pas dans Node.js. Node.js manque de fenêtre, de document et d'autres objets spécifiques au navigateur.



D'un autre côté, les navigateurs manquent des merveilleuses API fournies par Node.js via des modules, tels que l'accès au système de fichiers.



Une autre grande différence est que dans Node.js, vous contrôlez l'environnement d'exécution de code. À moins que vous ne développiez une application open source que n'importe qui peut déployer n'importe où, vous savez quelle version de Node.js est utilisée pour exécuter l'application. Ceci est très pratique par rapport à l'exécution du navigateur, car les utilisateurs peuvent décider quel navigateur utiliser.



Cela signifie que vous pouvez Ă©crire du code en JavaScript pris en charge par votre version de Node.js.



Parce que JavaScript évolue de manière très dynamique, les navigateurs n'ont pas toujours le temps de mettre en œuvre rapidement de nouvelles fonctionnalités de langage et les utilisateurs ne se mettent pas toujours à jour en temps opportun, vous devez donc souvent maintenir l'ancien JavaScript sur le Web.



Pour transpiler du code vers ES5, vous pouvez utiliser Babel; dans Node.js, ce n'est pas nécessaire.



Une autre différence est que Node.js utilise le système modulaire CommonJS, tandis que les navigateurs prennent en charge les modules ES.



En pratique, cela signifie que dans Node.js nous utilisons require(), et dans le navigateur import.



Merci de votre attention, mes amis. Si vous trouvez des erreurs et des fautes de frappe, n'hésitez pas à écrire en PM, je vous en serai reconnaissant.



À suivre…



All Articles