Lors de la conférence JSConf en 2009, un jeune programmeur nommé Ryan Dahl a montré aux gens un projet sur lequel il travaillait, une plate-forme d'exécution JavaScript basée sur le moteur Google V8, qui fournit un ensemble de boucles d'événements et une interface de programmation d'applications à faible IO ( API). Contrairement à d'autres plates-formes côté serveur, JavaScript est intrinsèquement une E/S pilotée par les événements, et ce projet réduit considérablement la complexité de l'écriture d'applications pilotées par les événements. Il a donc rapidement gagné en popularité à une vitesse incroyable et a été appliqué aux projets réels. (Jack : Cette traduction n'est pas très fiable. Le texte original : Ce projet n'était pas comme les autres plates-formes JavaScript côté serveur où toutes les primitives d'E/S étaient pilotées par des événements et il n'y avait aucun moyen de contourner cela.)
Ce projet s'appelle Node.js, et les développeurs ont l'habitude de l'appeler Node. Node fournit une boîte à outils purement événementielle et non bloquante pour créer des applications à haute concurrence.
Remarque : Node vous permet de créer facilement des services réseau rapides et évolutifs.
Depuis son introduction par Ryan Dahl, Node a reçu une large attention dans l'industrie. Ils ont commencé à utiliser Node pour déployer des services réseau rapides et évolutifs. Node est tellement attrayant.
D'une part, JavaScript est le langage de programmation le plus utilisé sur la planète. La plupart des programmeurs Web ont utilisé JavaScript côté navigateur, et côté serveur en est une extension naturelle.
D'un autre côté, comme Node est petit et mignon, son ensemble de fonctions de base est très petit et les API existantes sont très raffinées, minimisant ainsi la complexité pour les développeurs. Lorsque vous souhaitez créer des applications plus complexes, il vous suffit de choisir et d'installer les modules tiers que vous aimez.
Il y a une autre raison pour laquelle Node est si attrayant. Il est facile de démarrer. Vous pouvez le télécharger, l'installer et l'exécuter en quelques minutes.
Habituellement, suivez simplement les étapes sur le site officiel (http://nodejs.org) pour installer Node. Il prend en charge Windows, Linux, Macintosh et Solaris.
Installer Node sur Windows
Node prend en charge Windows à partir de la version 0.6.0. Pour installer Node sur Windows, téléchargez simplement node-v*.msi depuis Http://nodejs.org/#download, puis double-cliquez. pour exécuter C'est tout, et vous pourriez alors rencontrer une boîte de dialogue de sécurité similaire à la figure 1-1.
Figure 1-1
Cliquez sur le bouton « Exécuter ». Une fois le téléchargement terminé, une autre boîte de dialogue de sécurité (Figure 1-2) apparaîtra pour vous rappeler si vous êtes sûr de fonctionner.
Figure 1-2
Si vous êtes d'accord, l'assistant d'installation de Node apparaîtra (Figure 1-3). Cliquez sur Suivant et Node lancera l'installation. Il sera installé dans un court laps de temps ! Voir la figure 1-4
Figure 1-3
Figure 1-4
Installation sous Mac OS X
Si vous utilisez Mac OS X, vous pouvez utiliser l'assistant d'installation pour installer Node. Tout d'abord, téléchargez node-v*.pkg depuis http://nodejs.org/#download. à exécuter, et vous verrez la première boîte de dialogue de l'assistant d'installation, voir Figure 1-5
Figure 1-5
Cliquez sur "Continuer" pour installer, puis l'assistant vous demandera de saisir le mot de passe de l'utilisateur du système. Après confirmation, l'installation commencera après un court instant, Node est à nouveau installé ! Voir la figure 1-6
Figure 1-6
Installer à partir du code source
Si vous utilisez un système UNIX, vous pouvez l'installer en compilant le code source. Tout d’abord, vous devez sélectionner la version de Node que vous souhaitez installer, puis télécharger le code source correspondant et le construire, installer et exécuter Node.
Remarque : Node s'appuie sur plusieurs bibliothèques de code tierces, mais heureusement, la plupart d'entre elles sont déjà incluses dans le package de distribution de Node. Si vous construisez à partir des sources, vous avez besoin des deux éléments suivants :
.1.python (version 2.4 ou supérieure) - Les outils de build publiés avec Node nécessitent un environnement python pour s'exécuter
2.libssl-dev - Si vous envisagez d'utiliser le cryptage SSL/TLS, vous devez l'installer. libssl est une bibliothèque de classes utilisée par l'outil openssl sous les systèmes Linux et UNIX, vous pouvez généralement l'installer à l'aide du gestionnaire de packages du système. libssl est préinstallé sous Mac OS X, donc si vous utilisez un système Mac OS X, vous n'avez généralement pas besoin d'installer libssl.
Sélectionnez la version du nœud
Il existe généralement deux versions différentes de Node disponibles en téléchargement sur le site officiel nodejs.org : la version stable et la dernière version.
Pour Node, le plus petit chiffre du numéro de version représente la stabilité de cette version. Les versions stables utilisent des nombres pairs (tels que 0,2, 0,4, 0,6) et les versions instables utilisent des nombres impairs (0,1, 0,3, 0,5, 0,7). .
La version non stable est non seulement fonctionnellement instable, mais l'API peut également changer dans les versions ultérieures. Les API publiées dans la version stable ne seront pas modifiées. Pour chaque branche stable, le nouveau patch contient non seulement des corrections de bugs, mais inclut également des modifications d'API dans les versions non stables.
À moins que vous souhaitiez tester de nouvelles fonctionnalités dans la dernière version instable, vous devez choisir la dernière version stable. Les versions instables sont comme des champs de bataille permettant à l'équipe principale de Node de tester de nouvelles fonctionnalités.
Bien que de plus en plus de projets et d'entreprises utilisent avec succès Node dans leurs produits (indiqué sur la page d'accueil du site officiel), vous devrez peut-être apprendre à tolérer les changements de l'API de la version instable à la version stable. c'est le prix à payer pour apprendre une nouvelle technologie.
Télécharger le code source du nœud
Vous savez maintenant quelle version télécharger, puis rendez-vous sur le site officiel http://nodejs.org pour trouver le package tar correspondant, puis copiez le lien de téléchargement si vous utilisez un UNIX. système, votre système Wget est peut-être déjà installé, ce qui signifie que vous pouvez le télécharger avec une commande shell :
Si wget n'est pas installé, vous devrez peut-être utiliser curl :
Si ces deux outils ne sont pas installés, vous devez trouver d'autres moyens de télécharger le package tar dans votre répertoire local, par exemple via un navigateur ou via un réseau local.
(Les exemples de ce livre utilisent la dernière version stable au moment de la rédaction : 0.6.12)
Construire un nœud
Maintenant que nous avons le code source, nous pouvons l'utiliser pour construire l'exécutable Node. Tout d'abord, vous devez décompresser le fichier tar téléchargé précédemment :
Rentrez ensuite le répertoire du code source :
Installer le nœud
Une fois la construction terminée, utilisez la commande suivante pour installer Node :
Si vous rencontrez des problèmes d'autorisation, ajoutez sudo devant la commande et exécutez-la en tant qu'utilisateur root :
Vous pouvez maintenant exécuter Node. Vous pouvez d'abord simplement découvrir l'interface de ligne de commande de Node (CLI : interface de ligne de commande) Il vous suffit d'appeler le fichier exécutable de Node :
.
Préparer et utiliser le gestionnaire de packages Node
Jusqu'à présent, vous ne pouvez utiliser que les fonctionnalités du langage et les fonctions de base de Node lui-même. C'est pourquoi la plupart des plates-formes de programmation disposent d'un système de téléchargement, d'installation et de gestion de modules tiers. Dans Node, nous utilisons Node Package Manager (. NPM : Gestionnaire de packages de nœuds)
NPM se compose de trois parties : une base de code pour stocker les packages tiers, un mécanisme pour gérer les packages installés localement et un standard pour définir les dépendances des packages. NPM fournit un service de registre public qui contient tous les packages publiés par tout le monde et fournit un outil de ligne de commande pour télécharger, installer et gérer ces packages. Vous pouvez suivre les normes de format de package de Node pour formuler votre package ou d'autres packages tiers dont dépend votre application.
Bien que vous n'ayez pas besoin de connaître NPM pour commencer à utiliser Node, vous devez l'apprendre si vous souhaitez utiliser des packages tiers, car Node lui-même ne fournit que certaines API de bas niveau. L'utilisation de modules tiers peut réduire considérablement. complexité du développement. Vous n’avez rien à coder vous-même. NPM vous permet de télécharger et d'utiliser des modules dans un bac à sable, afin que vous puissiez expérimenter des choses qui vous intéressent sans vous soucier de polluer l'environnement global des packages.
NPM et Node devaient être installés indépendamment. À partir de la version 0.6.0, NPM a été inclus dans le package d'installation de Node.
Utilisez NPM pour installer, mettre à niveau et désinstaller des packages
NPM est très puissant et vous pouvez l'utiliser de plusieurs manières. Sa base de code gère de manière centralisée tous les modules publics. Vous pouvez y accéder via http://search.npmjs.org. Les auteurs de modules open source Node peuvent publier leurs modules sur NPM, et d'autres peuvent télécharger et installer le module en utilisant le nom du module dans la description d'installation du package.
Cette partie du contenu comprend quelques opérations courantes d'installation et de suppression de packages. Les connaître est suffisant pour commencer à gérer les packages tiers dont dépendent vos propres applications. Cependant, vous devez d'abord comprendre que ces commandes. sont les modes « global » et « local », et comment ils affectent les dépendances et la recherche de modules.
Modes globaux et locaux pour les modules NPM
Le NPM fonctionne selon deux modes principaux : global et local. Ces deux modes affecteront la structure de répertoires dans laquelle les packages sont stockés et l'ordre dans lequel Node charge les packages.
Le mode local est le mode de fonctionnement par défaut de NPM. Dans ce mode, NPM ne fonctionne que dans le répertoire de travail et n'entraînera pas de modifications à l'échelle du système. Ce mode vous permet d'installer et de tester des modules sous un certain programme Node. n'affecte pas les autres programmes Node sur votre ordinateur.
Le mode global convient aux modules courants qui seront utilisés par de nombreux programmes et sont toujours chargés globalement, comme les outils de ligne de commande, qui ne sont pas directement utilisés par les applications.
Si vous ne savez pas dans quel mode installer un module, vous devez utiliser le mode local. Si un auteur de module nécessite qu'un module soit installé globalement, il l'indiquera généralement dans les instructions d'installation.
Mode global
Si vous utilisez le répertoire par défaut lors de l'installation de Node, en mode global, NPM installera le package dans /usr/local/lib/node_modules. Si vous exécutez la commande suivante, NPM recherchera et téléchargera la dernière version nommée sax et l'installera dans le répertoire /usr/local/lib/node_modules/sax.
Le mode par défaut est le mode local, vous devez donc ajouter l'indicateur -g après la commande NPM pour activer le mode global.
Mode local
Le mode local est le mode recommandé par défaut pour le mécanisme de dépendance du package Node. Dans ce mode, tout ce qui est installé par NPM se trouve dans le répertoire de travail actuel (le répertoire racine ne fait pas exception), sans affecter les paramètres globaux. Ce mécanisme vous permet de définir les modules dépendants de l'application et leurs versions un par un sans vous soucier de polluer l'espace global des modules. Cela signifie que vous pouvez avoir deux applications qui dépendent de versions différentes du même module sans qu'elles n'entrent en conflit.
Dans ce mode, NPM utilise le répertoire node_modules dans le répertoire de travail actuel pour stocker les modules. Par exemple, si votre répertoire de travail actuel est /home/user/apps/my_app, NPM utilisera /home/user/apps/my_app. /node_modules pour stocker tous les modules locaux. Cela signifie que si vous utilisez le nom du module pour référencer le module dans votre code, Node recherchera d'abord dans le répertoire node_modules local. S'il n'est pas trouvé, il recherchera dans le répertoire global node_modules. La priorité des modules locaux est toujours supérieure à. celui des modules globaux.
Installer le module
Utilisez la commande suivante pour installer la dernière version d'un module :
Par exemple, pour télécharger et installer la dernière version d'un module nommé sax, vous devez d'abord définir le répertoire racine de votre application sur le répertoire courant, puis saisir :
Vous pouvez également choisir d'installer une version spécifique via la commande suivante :
Désinstaller le module
Utilisez la commande suivante pour désinstaller un module local :
Utilisez la commande suivante pour mettre à jour le module local :
Utiliser des fichiers exécutables
Les modules peuvent contenir un ou plusieurs fichiers exécutables. Si vous utilisez les paramètres de répertoire par défaut pour installer un module global, NPM installera les fichiers exécutables dans le répertoire /usr/local/bin, qui est généralement également défini sur Part of the. variable d'environnement système PATH. Si vous installez ce module localement, NPM placera tous les fichiers exécutables dans le répertoire ./node_modules/.bin.
Gestion des dépendances
NPM installe non seulement les packages de modules dont vous avez besoin, mais installe également d'autres modules dont dépendent ces modules. Par exemple, si vous devez installer le module A et que A dépend des modules B et C, alors lorsque vous installez A, B et C seront également installés dans le répertoire ./node_modules/A/node_modules.Par exemple, vous installez localement un module appelé nano à l'aide de la commande suivante :
Cela vous indique que le module nano dépend des modules de soulignement et de requête, et indique également la version installée. Si vous vérifiez maintenant le répertoire ./node_modules/nano/node_modules, vous constaterez que ces deux modules ont été installés :
Utilisez le fichier package.json pour définir les dépendances
Lorsque vous commencez à écrire une application, vous pouvez créer un fichier package.json dans le répertoire racine de l'application pour définir les métadonnées de l'application, telles que le nom de l'application, l'auteur, l'adresse de la bibliothèque de codes, les informations de contact, etc. Les modules externes dont dépend le programme sont également spécifiés dans ce fichier.Si vous ne prévoyez pas de publier le programme sur NPM, vous n'avez pas besoin de créer ce fichier. Cependant, même si votre programme est privé, ce fichier est réellement utile. Il peut indiquer à NPM les dépendances de l'application. . (Note du traducteur : par exemple, si vous copiez le code source du projet de l'environnement de développement vers l'environnement de production, vous pouvez installer tous les packages dépendants en même temps en appelant npm install. npm terminera automatiquement le téléchargement et l'installation des modules dépendants via les dépendances. spécifié dans package.json , vous n'êtes pas obligé de le faire un par un, les détails seront introduits plus tard)
.
package.json est un fichier au format JSON qui contient une série d'attributs. Cependant, s'il s'agit simplement d'illustrer les dépendances du programme, un seul attribut de dépendances sera utilisé. Par exemple, une application appelée MyApp s'appuie sur les modules sax, nano et request Il vous suffit de créer un package.json comme ceci :.
"nom" : "MonApp",
"version" : "1.0.0",
"dépendances" : {
"sax" : "0.3.x",
"nano" : "*",
"demande" : ">0.2.0"
}
}
Vous avez spécifié l'application MyApp, qui dépend de la version 0.3 de sax, de toute version de nano et de la version du module de requête supérieure à 0.2.0.
Remarque : Vous constaterez peut-être que NPM ne fonctionne pas si vous spécifiez les champs de nom et de version. Cela ne se produit qu'avec les anciennes versions de NPM, car à l'origine, NPM était utilisé pour les modules publics et non pour les programmes privés.
Puis, dans le répertoire racine de l'application, exécutez :
De cette façon, NPM analysera les dépendances et votre répertoire node_modules local, et téléchargera et installera automatiquement les modules manquants.
Vous pouvez également mettre à jour tous les modules locaux vers la dernière version qui correspond à vos paramètres de dépendance définis en exécutant la commande suivante :
Résumé
Dans ce chapitre, vous avez appris à installer Node et Node Package Manager (NPM). Vous pouvez désormais utiliser NPM pour installer, désinstaller et supprimer des modules tiers. Vous avez également appris à utiliser NPM pour gérer des applications. dépendances avec l'élément package.json.
Maintenant que vous avez installé Node et NPM, vous pouvez l'essayer. Cependant, vous devez d'abord connaître certaines connaissances pertinentes sur Node et la conduite d'événements, qui seront présentées dans le chapitre suivant.