Qu'est-ce que Node.JS et pourquoi devrais-je m'en soucier? [Développement web]

Qu'est-ce que Node.JS et pourquoi devrais-je m'en soucier? [Développement web] / Wordpress & Développement Web

JavaScript est juste un langage de programmation côté client qui s'exécute dans le navigateur, n'est-ce pas? Plus maintenant. Node.js est un moyen d'exécuter JavaScript sur le serveur. mais c'est beaucoup plus aussi. Si le développement Web vous intéresse, vous devriez en savoir un peu plus sur Node et sur les raisons pour lesquelles il fait des vagues dans la communauté..

Qu'est-ce que Node.js?

Node est une interface du moteur d'exécution V8 JavaScript, l'interpréteur JavaScript ultrarapide qui s'exécute dans le navigateur Chrome. En l'occurrence, vous pouvez également télécharger la V8 et l'intégrer à n'importe quoi; Le noeud le fait pour les serveurs Web. Après tout, le langage JavaScript n’est qu’un langage - rien n’indique qu’il ne pourrait pas être utilisé sur un serveur aussi bien que dans le navigateur de l’utilisateur. Dans une pile de serveurs LAMP typique Comment configurer un serveur Web Apache en 3 étapes simples Comment configurer un serveur Web Apache en 3 étapes simples Quel que soit le motif, vous souhaiterez peut-être un serveur Web actif. Que vous souhaitiez vous accorder un accès à distance à certaines pages ou à certains services, vous souhaitez créer une communauté… En savoir plus, vous disposez d'un serveur Web Apache ou NGINX sous-jacent, sur lequel tourne PHP. Chaque nouvelle connexion au serveur génère un nouveau thread et il est très facile de perdre rapidement des performances ou de perdre un site. “descendre” - le seul moyen de prendre en charge davantage d'utilisateurs consiste à ajouter davantage de serveurs. Cela ne fonctionne tout simplement pas bien. Avec Node, ce n'est pas le cas. Il n’ya pas d’Apache pour écouter les connexions entrantes et renvoyer les codes d’état HTTP - vous devrez gérer vous-même l’architecture du serveur principal. Heureusement, il existe des modules pour rendre cela plus facile, mais cela peut toujours être un peu pénible quand vous commencez. Le résultat est cependant une application Web haute performance.

Klout - une application Web de statistiques sociales construite sur Node.js pour des performances élevées

JavaScript est un langage basé sur les événements Tutoriel jQuery (Partie 4) - Auditeurs d’événements Tutoriel jQuery (Partie 4) - Auditeurs d’événements Aujourd'hui, nous allons passer à la vitesse supérieure et montrer réellement où jQuery brille - les événements. Si vous avez suivi les didacticiels précédents, vous devriez maintenant avoir une assez bonne compréhension du code de base… En savoir plus, de sorte que tout ce qui se passe sur le serveur déclenche un événement non bloquant. Chaque nouvelle connexion déclenche un événement; les données reçues à partir d'un formulaire de téléchargement déclenchent un événement reçu de données; demander des données à la base de données déclenche un événement. En pratique, cela signifie qu'un site de nœud ne sera jamais verrouillé et pourra prendre en charge des dizaines de milliers d'utilisateurs simultanés. Node.js joue le rôle de serveur - Apache - et interprète le code d'application en cours d'exécution. Tout comme Apache, divers modules (bibliothèques) peuvent être installés pour ajouter des fonctionnalités, telles que des magasins de données, la prise en charge de fichiers Zip, la connexion à Facebook ou des passerelles de paiement. Bien sûr, il n’en existe pas autant que pour PHP, mais Node n’en est qu’à ses débuts et il existe une forte communauté derrière lui. Un concept de base de Node est constitué de fonctions asynchrones - tout fonctionne donc en arrière-plan. Avec la plupart des langages de script côté serveur, le programme doit attendre la fin de chaque fonction avant de passer à la suivante. Avec Node, vous spécifiez les fonctions qui doivent être exécutées à la fin de quelque chose d'autre, pendant que le reste de votre application continue. C’est un sujet complexe sur lequel je ne m’attarderai pas autant aujourd’hui, mais l’une de ces caractéristiques définissant Node, il est donc important de le comprendre. Assez discuté, voici un exemple de serveur HTTP de Hello World pour vous donner une idée de certains de ces concepts..

 var http = require ("http"); http.createServer (fonction (demande, réponse) response.writeHead (200, 'Content-Type': 'text / plain'); response.write ('Hello World!'); response.end (); ) .listen (8080); console.log ("Serveur en cours!"); 

Essayons de décomposer cela. Premièrement, nous incluons le module http dans le projet. Nous créons ensuite un serveur et transmettons une fonction anonyme en tant que paramètre - cette fonction sera appelée à chaque nouvelle connexion établie. Il faut deux arguments - demande, contenant les paramètres de requête de l'utilisateur; et réponse, que nous utiliserons pour renvoyer des choses. Ensuite, nous utilisons l'objet de réponse pour écrire un en-tête à l'utilisateur avec le code HTTP de réponse. 200 (“D'accord”) et type de contenu, écrire un “Bonjour le monde!” message et mettre fin à la réponse. Enfin, nous demandons au serveur d'écouter les demandes entrantes sur le port 8080 et nous envoyons un message rapide à la console (la ligne de commande) pour nous informer de son exécution. Si vous voulez réellement essayer cela par vous-même, enregistrez le code ci-dessus sous test.js, téléchargez le programme d'installation du nœud et à partir de la ligne de commande, -

noeud test.js

Ouvrez un navigateur et accédez à localhost: 8080 pour voir votre application de test! Vous devriez maintenant avoir une petite idée du fonctionnement de tout cela, ainsi que des modèles événementiels. Si vous débutez avec JavaScript, le concept de transmission de fonctions en tant qu'arguments à d'autres fonctions est probablement un peu étrange..

Pourquoi utiliser Node?

Tout d'abord, pour la performance et l'évolutivité. Le noeud est rapide. C'est une exigence assez importante lorsque vous êtes une start-up qui essaie de faire le prochain grand projet et veut s'assurer que vous pouvez évoluer rapidement, en faisant face à un afflux d'utilisateurs alors que votre site se développe. Node est également parfait pour offrir un API RESTful - un service Web qui prend quelques paramètres d'entrée et transmet un peu de données - une simple manipulation de données sans beaucoup de calcul. Node peut gérer des milliers de ces ressources simultanément où PHP ne ferait que s'effondrer. Mis à part les avantages en termes de performances et d'évolutivité, il est fort probable que vous sachiez déjà du JavaScript, alors pourquoi se donner la peine d'apprendre un tout nouveau langage comme PHP? Et puis - il y a l'excitation d'apprendre quelque chose de nouveau et relativement inexploré. Vous savez quand quelque chose de nouveau arrive et devient tellement omniprésent que vous regrettez de ne pas l'avoir appris plus tôt, en jouant à tout jamais du rattrapage? Ne fais pas ça cette fois. Le nœud va être gros.

Inconvénients

Comme la plupart des nouvelles technologies, le déploiement de Node sur des hôtes existants n’est pas simple. Si vous avez un hébergement Web partagé, vous ne pouvez pas simplement télécharger une application Node et vous attendre à ce qu'elle fonctionne. VPS et les serveurs dédiés sont mieux positionnés - vous pouvez y installer Node. Il est encore plus facile d'utiliser un service évolutif comme Heroku, qui est entièrement gratuit pour développer votre site - vous devez uniquement payer lorsque vous avez besoin de plus de ressources. J'ai déjà donné un exemple d'utilisation de Heroku lorsque nous l'avons utilisé pour créer une fangate Facebook, mais il peut également être utilisé pour Node. D'un autre côté, il est très facile d'installer Node localement sur votre PC Windows, Mac ou Linux et de commencer immédiatement à développer - rendez-vous simplement dans Download Node. Il est également important de noter que Node ne remplace pas simplement Apache: les applications Web existantes ne sont pas compatibles et vous travaillerez efficacement à partir de zéro. (bien qu'il existe de nombreux cadres pour vous aider avec des fonctionnalités communes). L'autre inconvénient majeur du nœud est qu'il n'en est encore qu'au début du développement, ce qui signifie que certaines fonctionnalités sont susceptibles de changer à mesure que le développement progresse. En fait, si vous consultez la documentation, celle-ci comprend un indice de stabilité, qui montre le degré de risque actuel de chaque fonctionnalité.. Vous savez, le développement de sites Web n'a jamais été aussi excitant. Avec les services Web ouverts et l'échange de données, il est plus facile que jamais de créer quelque chose impressionnant. Pensez-vous à apprendre Node? Bien. Allez-y et faites le prochain Twitter! Tutoriel jQuery - Premiers pas et sélecteurs Tutoriel jQuery - Premiers pas et sélecteurs La semaine dernière, j’ai parlé de l’importance de jQuery pour tout développeur web moderne et de son importance. impressionnant. Cette semaine, je pense qu'il est temps de nous salir les mains avec du code et d'apprendre comment… Read More for the front end.

En savoir plus sur: JavaScript, Programmation, Conception de sites Web, Développement Web.