Noeud.JS (Node.JS)

Node.js est un runtime JavaScript multiplateforme open source qui s'exécute sur des serveurs. Depuis sa sortie en 2009, cette plateforme est devenue extrêmement populaire et joue un rôle très important dans le domaine du développement web ces jours-ci.
Pour l'article complet sur Node.JS ...

Afficher le filtre
Filtres d'hébergement
A2 Themes & Host Me Filter

Le système d'exploitation

Espace disque

Mémoire RAM

Type de disque

Cœurs de processeur

Trier

Pilote de confiance Dream Host
Score - 9.7
Dream Host Logo
Dream Host

Hôte de rêve

DreamObjects 40 GB
$0.95 /Mensuel

Avis 3778

29 Coupons

Emplacements des serveurs


Dream Host Servers in AshburnÉtats Unis
Comparer
Pilote de confiance ICDSoft
Score - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - Europe
$8 /Mensuel

Avis 233


Emplacements des serveurs


ICDSoft Servers in SofiaBulgarie ICDSoft Servers in BostonÉtats Unis ICDSoft Servers in Hong KongHong Kong
Comparer
Pilote de confiance ICDSoft
Score - 10
ICDSoft Logo
ICDSoft

ICDSoft

Economy - USA
$8 /Mensuel

Avis 233


Emplacements des serveurs


ICDSoft Servers in SofiaBulgarie ICDSoft Servers in BostonÉtats Unis ICDSoft Servers in Hong KongHong Kong
Comparer
Score - 9
A2hosting Logo
A2hosting

Hébergement A2

Lite
$3.92 /Mensuel

50 Coupons

Emplacements des serveurs


A2hosting Servers in AmsterdamPays-Bas A2hosting Servers in MichiganÉtats Unis A2hosting Servers in SingaporeSingapour
Comparer
Pilote de confiance Keliweb
Score - 9.8
Keliweb Logo
Keliweb

Keliweb

Prime
$5.51 /Mensuel

Avis 453


Emplacements des serveurs


Keliweb Servers in MilanoItalie
Comparer
Pilote de confiance JustHostMe
Score - 9.4
JustHostMe Logo
JustHostMe

JustHostMe

Starter
$3.11 /Mensuel

Avis 72


Emplacements des serveurs


JustHostMe Servers in United KingdomRoyaume-Uni
Comparer
Pilote de confiance Dream VPS
Score - 8.6
Dream VPS Logo
Dream VPS

VPS de rêve

STARTER
$3.75 /Mensuel

Avis 7


Emplacements des serveurs


Dream VPS Servers in Hong KongHong Kong Dream VPS Servers in Santa Clara Dream VPS Servers in New YorkÉtats Unis Dream VPS Servers in LondonRoyaume-Uni Dream VPS Servers in AmsterdamPays-Bas Dream VPS Servers in FrankfurtAllemagne Dream VPS Servers in IsraelIsraël
Comparer
Pilote de confiance Reseller Cube
Score - 8
Reseller Cube Logo
Reseller Cube

Cube revendeur

Basic USA
$5 /Mensuel

Avis 4


Emplacements des serveurs


Reseller Cube Servers in RaleighÉtats Unis
Comparer
Pilote de confiance Univa Host
Score - 8
Univa Host Logo
Univa Host

Hôte Univa

E-ECONOMY
$2.99 /Mensuel

Avis 3


Emplacements des serveurs


Univa Host Servers in GermanyAllemagne Univa Host Servers in United StatesÉtats Unis
Comparer
Pilote de confiance OperaVPS
Score - 7.8
OperaVPS Logo
OperaVPS

OperaVPS

Linux 512MB
$7.99 /Mensuel

Avis 3


Emplacements des serveurs


OperaVPS Servers in United KingdomRoyaume-Uni OperaVPS Servers in AustriaL'Autriche OperaVPS Servers in CanadaCanada OperaVPS Servers in DenmarkDanemark OperaVPS Servers in FranceFrance OperaVPS Servers in GermanyAllemagne OperaVPS Servers in ItalyItalie OperaVPS Servers in NetherlandsPays-Bas OperaVPS Servers in RomaniaRoumanie OperaVPS Servers in United StatesÉtats Unis
Comparer
Pilote de confiance L3Web Hosting
Score - 7.6
L3Web Hosting Logo
L3Web Hosting

Hébergement L3Web

START UP
$1.99 /Mensuel

Avis 2


Emplacements des serveurs


L3Web Hosting Servers in IndiaInde L3Web Hosting Servers in MunichAllemagne L3Web Hosting Servers in MiamiÉtats Unis L3Web Hosting Servers in SingaporeSingapour L3Web Hosting Servers in United KingdomRoyaume-Uni
Comparer
Pilote de confiance Idea Stack
Score - 7.4
Idea Stack Logo
Idea Stack

Pile d'idées

LEVEL 1
$2 /Mensuel

Avis 2


Emplacements des serveurs


Idea Stack Servers in SeattleÉtats Unis
Comparer
Pilote de confiance Epic Host
Score - 7.4
Epic Host Logo
Epic Host

Hôte épique

Cloud hosting
$2.37 /Mensuel

Avis 1


Emplacements des serveurs


Epic Host Servers in New DelhiInde Epic Host Servers in UnionÉtats Unis
Comparer
Pilote de confiance itanets.co.uk
Score - 7
itanets.co.uk Logo
itanets.co.uk

itanets.co.uk

JSP HOSTING 1
$5.19 /Mensuel

Avis 2

Comparer
Pilote de confiance Digital Ocean
Score - 3.8
Digital Ocean Logo
Digital Ocean

Océan numérique

$5 /mo
$5 /Mensuel

Avis 214

38 Coupons

Emplacements des serveurs


Digital Ocean Servers in IndiaInde Digital Ocean Servers in New YorkÉtats Unis Digital Ocean Servers in AmsterdamPays-Bas Digital Ocean Servers in LondonRoyaume-Uni Digital Ocean Servers in TorontoCanada Digital Ocean Servers in Frankfurt am MainAllemagne Digital Ocean Servers in SingaporeSingapour
Comparer
Score - 10
HOST PRO KE Logo
HOST PRO KE

HÔTE PRO KE

Host Pro Starter
$9.38 /Annuel


Emplacements des serveurs


HOST PRO KE Servers in GermanyAllemagne
Comparer
Score - 9.4
Accu WebHosting Logo
Accu WebHosting

Hébergement Web Accu

Windows Personal Web Hosting
$2.99 /Mensuel

19 Coupons

Emplacements des serveurs


Accu WebHosting Servers in FranceFrance Accu WebHosting Servers in DenverÉtats Unis Accu WebHosting Servers in MumbaiInde Accu WebHosting Servers in AmsterdamPays-Bas Accu WebHosting Servers in Frankfurt am MainAllemagne Accu WebHosting Servers in SydneyAustralie Accu WebHosting Servers in LondonRoyaume-Uni Accu WebHosting Servers in PolandPologne Accu WebHosting Servers in CanadaCanada Accu WebHosting Servers in SingaporeSingapour
Comparer
Score - 9
Be hostings Logo
Be hostings

Soyez des hébergements

StarterSSL
$3.36 /Mensuel


Emplacements des serveurs


Be hostings Servers in BrusselsBelgique
Comparer
Score - 4.3
Gear Host Logo
Gear Host

Hôte d'équipement

CloudSite Hobby
$5 /Mensuel


Emplacements des serveurs


Gear Host Servers in DenverÉtats Unis
Comparer
Score - 1
Mikro VPS Logo
Mikro VPS

Mikro VPS

VPS SSD 1
$4.39 /Mensuel


Emplacements des serveurs


Mikro VPS Servers in BudapestHongrie
Comparer
Score - 0
Simple Node Logo
Simple Node

Nœud simple

OpenVZ - 256MB
$3 /Mensuel

Comparer

 

Node.js

 

 

Node.js est un runtime JavaScript multiplateforme open source qui s'exécute sur des serveurs. Depuis sa sortie en 2009, cette plateforme est devenue extrêmement populaire et joue un rôle très important dans le domaine du développement web ces jours-ci. Si nous considérons le nombre d'étoiles qu'un projet a collecté sur GitHub comme un indicateur de popularité, alors Node.js, qui compte plus de 50000 étoiles, est un projet très, très populaire.

 

La plate-forme Node.js est basée sur le moteur JavaScript V8 de Google, qui est utilisé dans le navigateur Google Chrome. Cette plate-forme est principalement utilisée pour créer des serveurs Web, mais sa portée ne se limite pas à cela.

 

Regardons les principales fonctionnalités de Node.js.

 

La vitesse

 

L'une des principales attractions de Node.js est la vitesse. Le code JavaScript exécuté dans Node.js peut être deux fois plus rapide que le code écrit dans des langages compilés comme C ou Java, et des ordres de grandeur plus rapides que des langages interprétés comme Python ou Ruby. La raison en est l'architecture non bloquante de la plateforme, et les résultats spécifiques dépendent des benchmarks utilisés, mais dans l'ensemble, Node.js est une plateforme très rapide.

 

Simplicité

 

La plate-forme Node.js est facile à apprendre et à utiliser. En fait, c'est carrément très simple, surtout par rapport à d'autres plates-formes de serveurs.

 

JavaScript

 

JavaScript est exécuté dans l'environnement Node.js. Cela signifie que des millions de développeurs frontaux qui utilisent déjà JavaScript dans le navigateur peuvent écrire du code côté serveur et côté client dans le même langage de programmation sans avoir à apprendre un tout nouvel outil pour passer au développement côté serveur.

 

Le navigateur et le serveur utilisent les mêmes concepts linguistiques. De plus, Node.js peut rapidement passer aux nouvelles normes ECMAScript au fur et à mesure de leur implémentation sur la plate-forme.

 

Il n'est pas nécessaire d'attendre que les utilisateurs actualisent leur navigateur pour cela, car Node.js est un environnement côté serveur entièrement sous le contrôle du développeur. Par conséquent, de nouvelles fonctionnalités linguistiques deviennent disponibles lorsque vous installez une version de prise en charge de Node.js.

 

Moteur V8

 

Au cœur de Node.js, entre autres solutions, se trouve le moteur JavaScript open-source V8 de Google, qui est utilisé dans Google Chrome et d'autres navigateurs. Cela signifie que Node.js tire parti des milliers d'ingénieurs qui ont rendu l'exécution de JavaScript Chrome incroyablement rapide et continuent de travailler à l'amélioration de V8.

 

Asynchronie

 

Dans les langages de programmation traditionnels (C, Java, Python, PHP), toutes les instructions sont bloquantes par défaut, à moins que le développeur ne s'occupe explicitement d'exécuter le code de manière asynchrone. Par conséquent, si, par exemple, dans un tel environnement, vous faites une demande réseau pour télécharger du code JSON, l'exécution du flux à partir duquel la demande est faite sera suspendue jusqu'à ce que la réponse soit reçue et traitée.

 

JavaScript facilite beaucoup l'écriture de code asynchrone et non bloquant à l'aide d'un seul thread, de rappels et d'une approche de développement basée sur les événements. Chaque fois que nous devons effectuer une opération lourde, nous transmettons un rappel au mécanisme approprié, qui sera appelé immédiatement après la fin de cette opération. En conséquence, il n'est pas nécessaire d'attendre les résultats de ces opérations pour que le programme continue de fonctionner.

 

Un mécanisme similaire est né dans les navigateurs. Nous ne pouvons pas nous permettre d'attendre, disons, unAJAXdemander de terminer sans pouvoir répondre aux actions de l'utilisateur, telles que les clics sur des boutons. Pour faciliter le travail des utilisateurs avec les pages Web, tout, à la fois le téléchargement de données à partir du réseau et le traitement des clics de bouton, doit se produire simultanément, en temps réel.

 

Si vous avez déjà créé un gestionnaire d'événements de clic de bouton, vous avez déjà utilisé des techniques de programmation asynchrone.

 

Les mécanismes asynchrones permettent à un seul serveur Node.js de gérer simultanément des milliers de connexions sans alourdir le programmeur avec des tâches de gestion des threads et d'exécution de code parallèle. De telles choses sont souvent des sources d'erreur.

 

Node.js fournit au développeur des mécanismes d'E / S de base non bloquants et, en général, les bibliothèques utilisées dans le framework Node.js sont écrites à l'aide de paradigmes non bloquants.Cela fait du comportement de blocage l'exception plutôt que la norme.

 

Lorsque Node.js a besoin d'effectuer une opération d'E / S, telle que le chargement de données depuis le réseau, l'accès à une base de données ou au système de fichiers, au lieu de bloquer le thread principal en attendant les résultats d'une telle opération, Node.js lancera son exécution et continuez à faire d'autres choses jusqu'à ce que les résultats de cette opération soient reçus.

 

Bibliothèques

 

Avec la facilité et la commodité de travailler avec un gestionnaire de packages pour Node.js appelé npm, l'écosystème Node.js est en plein essor. Il y a maintenant plus d'un demi-million de packages open source dans le registre npm que tout développeur Node.js peut utiliser librement.

 

Après avoir passé en revue certaines des principales fonctionnalités de la plate-forme Node.js, essayons-la en action. Commençons par l'installation.

 

 

Node.js

 

 

Installation de Node.js

 

Node.js peut être installé de différentes manières, que nous aborderons dans un instant. Ainsi, les packages d'installation officiels pour toutes les principales plates-formes peuvent être trouvés.

 

Il existe un autre moyen très pratique d'installer Node.js, qui consiste à utiliser le gestionnaire de packages fourni dans le système d'exploitation. Par exemple, le gestionnaire de packages macOS, qui est la norme de facto dans ce domaine, s'appelle Homebrew.

 

Si vous en avez un sur votre système, vous pouvez installer Node.js en exécutant cette commande sur la ligne de commande:

 

noeud d'installation de brassage

 

Une liste des gestionnaires de packages pour d'autres systèmes d'exploitation, y compris Linux et Windows, est disponible ici.

 

Un gestionnaire de version Node.js populaire est nvm. Cet outil vous permet de basculer facilement entre différentes versions de Node.js, avec son aide, vous pouvez, par exemple, installer et essayer une nouvelle version de Node.js, puis, si nécessaire, revenir à l'ancienne. Nvm est également utile dans une situation où vous devez tester du code sur une ancienne version de Node.js.

 

Pour les débutants à utiliser les programmes d'installation officiels de Node.js. Pour les utilisateurs de macOS, on recommande d'installer Node.js à l'aide de Homebrew. Maintenant que vous avez installé Node.js, il est temps d'écrire "Hello World".

 

Première application Node.js

 

L'exemple le plus courant d'une première application Node.js est un simple serveur Web. Voici son code:

const http = require ('http')

const hostname = '127.0.0.1'

port const = 3000

serveur const = http.createServer ((req, res) = & gt; {

res.statusCode = 200

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

res.end ('Hello World \ n')

})

server.listen (port, nom d'hôte, () = & gt; {

console.log (`Serveur fonctionnant sur http: // $ {hostname}: $ {port} /`)

})

 

Pour exécuter ce code, enregistrez-le dans un fichier server.js et exécutez la commande suivante dans le terminal:

 

nœud server.js

 

Pour vérifier le serveur, ouvrez un navigateur et entrez dans la barre d'adresse http://127.0.0.1:3000, c'est-à-dire l'adresse du serveur qui sera affichée dans la console après son lancement réussi. Si tout fonctionne comme il se doit, la page affichera "Hello World".

 

Regardons cet exemple.

 

Tout d'abord, notez que le code contient la commande pour connecter le module HTTP.

 

La plate-forme Node.js dispose d'un excellent ensemble standard de modules, qui comprend des mécanismes bien développés pour travailler avec le réseau.

La méthode d'objet createServer () http crée un nouveau serveur HTTP et le renvoie.

 

Le serveur est configuré pour écouter sur un port spécifique sur un hôte spécifique. Lorsque le serveur est prêt, le callback correspondant est appelé, nous informant que le serveur est en cours d'exécution.

Lorsque le serveur reçoit une demande, un événement est déclenché par une demande qui fournit deux objets. Le premier est la requête (req, l'objet http.IncomingMessage), le second est la réponse (res, l'objet http.ServerResponse). Ce sont les mécanismes les plus importants pour gérer les requêtes HTTP.

 

Le premier nous fournit des informations sur la demande. Dans notre exemple simple, nous n'utilisons pas ces données, mais, si nécessaire, en utilisant l'objet, vous pouvez accéder aux en-têtes de la requête et aux données qui y sont passées.

 

Le second est nécessaire pour former et envoyer une réponse à une demande.

 

Dans ce cas, nous formons la réponse à la demande comme suit. Tout d'abord, nous définissons le code d'état de la propriété sur une valeur de 200, ce qui indique une opération réussie:

 

res.statusCode = 200

Ensuite, nous définissons le titre Content-Type:

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

Nous terminons ensuite la préparation de la réponse en ajoutant son contenu en argument à la méthode end ():

res.end ('Hello World \ n')

 

Nous avons déjà mentionné qu'un puissant écosystème s'est formé autour de la plate-forme Node.js. Discutons maintenant de quelques frameworks et outils d'aide populaires pour Node.js.

 

Frameworks et outils d'assistance pour Node.js

 

Node.js est une plate-forme de bas niveau. Afin de simplifier son développement et de faciliter la vie des programmeurs, un grand nombre de bibliothèques ont été créées. Certains d'entre eux sont devenus très populaires au fil du temps. Voici une petite liste de bibliothèques qui, à mon avis, sont bien faites et méritent d'être explorées:

 

Express: Cette bibliothèque fournit au développeur un outil extrêmement simple mais puissant pour créer des serveurs Web. La clé du succès d'Express a été une approche minimaliste et une concentration sur les mécanismes de base côté serveur sans essayer d'imposer une vision d'architecture de serveur «à guichet unique».

 

Météore: Il s'agit d'un puissant framework full-stack qui adopte une approche isomorphe pour développer des applications JavaScript et utiliser du code à la fois sur le client et le serveur. Autrefois, Meteor était un outil autonome comprenant tout ce dont un développeur pouvait avoir besoin. Il s'intègre désormais également aux bibliothèques frontales telles que React, Vue et Angular. Meteor, en plus de développer des applications Web communes, peut également être utilisé dans le développement mobile.

 

Koa: Ce framework web est construit par la même équipe derrière Express. S'appuyant sur des années d'expérience avec Express, il a été développé avec un accent sur la simplicité et la compacité. Ce projet est né comme une solution au problème des changements majeurs à Express qui sont incompatibles avec d'autres mécanismes de cadre qui pourraient diviser la communauté.

 

Next.js: Ce framework est conçu pour organiser le rendu côté serveur des applications React.

 

Micro: C'est une bibliothèque très légère pour créer des microservices HTTP asynchrones.

Socket.io. C'est une bibliothèque pour développer des applications réseau en temps réel.

 

En fait, dans l'écosystème Node.js, vous pouvez trouver une bibliothèque d'aide pour presque toutes les tâches. Comme vous pouvez l'imaginer, il faut beaucoup de temps pour construire un tel écosystème. La plate-forme Node.js est apparue en 2009. Au cours de son existence, il s'est passé beaucoup de choses qui devraient être connues d'un programmeur qui veut apprendre cette plate-forme.

 

Une brève histoire de Node.js

 

Node.js a 9 ans cette année. Ce n'est bien sûr pas tant quand on compare cet âge avec l'âge de JavaScript, qui a déjà 23 ans, ou avec l'âge de 25 ans du web tel que nous le connaissons si vous comptez depuis l'avènement de la mosaïque navigateur.

 

9 ans, c'est peu de temps pour la technologie, mais maintenant, il semble que la plate-forme Node.js ait toujours existé.

 

Avec Node.js des premières versions de la plateforme alors qu'elle n'avait que 2 ans. Même dans ce cas, malgré le fait qu'il n'y avait pas tellement d'informations sur Node.js, on pouvait déjà sentir que Node.js est très sérieux.

 

Parlons maintenant des technologies derrière Node.js et jetons un coup d'œilprincipaux développements liés à cette plateforme.

 

JavaScript est donc un langage de programmation créé dans Netscape en tant que langage de script pour manipuler les pages Web dans le navigateur Netscape Navigator.

Une partie des activités de Netscape consistait à vendre des serveurs Web, qui comprenaient un environnement appelé Netscape LiveWire. Il vous a permis de créer des pages Web dynamiques à l'aide de JavaScript côté serveur.

 

l'idée d'utiliser JS pour le développement côté serveur est beaucoup plus ancienne que Node.js. Cette idée est presque aussi ancienne que JavaScript lui-même, mais à l'époque en question, le JS côté serveur n'était pas populaire.

 

L'un des facteurs clés qui ont rendu la plate-forme Node.js si répandue et populaire est sa première apparition. Ainsi, quelques années plus tôt, JavaScript avait commencé à être considéré comme un langage sérieux. Cela s'est produit grâce aux applications Web 2.0 comme Google Maps ou Gmail, qui ont montré au monde entier la puissance des technologies Web modernes.

 

Grâce à la guerre concurrentielle des navigateurs, qui se poursuit à ce jour, les performances des moteurs JavaScript ont considérablement augmenté. Les équipes de développement derrière les principaux navigateurs travaillent chaque jour pour améliorer les performances de leurs solutions, ce qui a un effet bénéfique sur JavaScript en général.

 

L'un de ces moteurs est le V8 déjà mentionné, utilisé dans le navigateur Chrome et utilisé dans Node.js. C'est l'un des résultats des développeurs de navigateurs à la recherche d'un code JavaScript haute performance.

 

Bien sûr, la popularité de Node.js ne repose pas seulement sur une heureuse coïncidence et sur le fait que la plateforme est née au bon moment. Elle a présenté au monde une approche innovante du développement JavaScript côté serveur. Regardons les étapes majeures de l'histoire de Node.js.

 

2009


  • L'émergence de Node.js

  • Création de la première variante npm.

 

2010

  • L'apparition d'Express.

  • L'émergence de Socket.io.

 

2011


  • Version Npm 1.0.

  • De grandes entreprises comme LinkedIn et Uber ont commencé à utiliser Node.js.

 

2012


  • La montée en popularité rapide de Node.js.

 

2013


  • L'émergence de Ghost, la première grande plateforme de publications utilisant Node.js.

  • Libération de Koa.

 

2014


  • Des événements dramatiques ont eu lieu cette année. Le projet IO.js est apparu, qui est un fork de Node.js, dont le but, entre autres, était d'introduire le support ES6 et d'accélérer le développement de la plateforme.

 

2015


  • La Fondation Node.js est fondée.

  • Fusion de IO.js et Node.js.

  • Dans npm, il devient possible de travailler avec des modules privés.

  • Yield Node.js 4 (il convient de noter que les versions 1, 2 et 3 de la plate-forme ne l'étaient pas).

 

2016


  • Incident du paquet de la tablette gauche.

  • L'émergence du fil.

  • Version de Node.js 6.

 

2017


  • Npm commence à accorder plus d'attention à la sécurité.

  • Version de Node.js 8

  • L'émergence du support pour HTTP / 2.

  • V8 est officiellement reconnu comme un moteur JS conçu non seulement pour Chrome mais aussi pour Node.

  • Il y a 3 milliards de téléchargements de npm chaque semaine.

 

2018


  • Version de Node.js 10.

  • Prise en charge des modules ES.

  • Prise en charge expérimentale de mjs.