Makina Blog
Introduction à Node.js
Cet article présente Node.js et NPM. Vous y apprendrez ce qu'est Node.js, comment il est utilisé et comment l'installer.
Introduction
Node.js est une plateforme de développement Javascript. Ce n'est pas un serveur, ce n'est pas un framework, c'est juste le langage Javascript avec des bibliothèques permettant de réaliser des actions comme écrire sur la sortie standard, ouvrir/fermer des connections réseau ou encore créer un fichier.
Il est souvent confondu avec un serveur car c'est son origine : Node.js a été créé par Ryan Dahl dans le but de pouvoir créer des applications temps réel où le serveur est capable de pousser de l'information au client. C'est dans ce but qu'il utilise la bibliothèque libuv pour réaliser son modèle d'entrée sortie non bloquante.
Pourquoi utiliser Node.js ?
- logiciel libre (licence MIT).
- performance du moteur v8.
- modèle non bloquant.
- communauté très active.
- système de paquet intégré (NPM).
- les grandes entreprises l'utilisent.
Comment installer Node.js ?
Pour l'installer vous pouvez utiliser une des trois méthodes ci-dessous :
- Utiliser votre gestionnaire de paquets (brew, macport, apt-get, …).
- Utiliser un des binaires disponibles sur le site officiel dans la rubrique téléchargement de Node.js.
- Compiler le code source (dans ce cas, vous savez déjà comment faire).
Hello world
Voici un exemple d'utilisation : comment faire un serveur http avec Node.js (exemple.js)
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1'); console.log('Server running at http://127.0.0.1:1337/');
$ node example.js Server running at http://127.0.0.1:1337/
Les bibliothèques standard Node.js
Voici la liste des bibliothèques contenues dans Node.js considérées comme stables (niveau 3) avec une petite description :
- REPL : c'est l'interpréteur que vous avez quand vous tapez node dans votre console.
- assert : pour faire des tests.
- console : pour les logs.
- debugger : point d'arrêt, step, …
- dns : les noms de domaines.
- event : tout sur la gestion des événements.
- fs : tout sur le système de fichiers.
- global : tout ce qui est tout le temps disponible.
- http : un serveur, un client, requête, réponse, …
- net : wrapper réseau asynchrone.
- path : gestion des chemins sur un système de fichier.
- os : gestion du système: dossiers temporaires, noms d'hôtes, …
- querystring : échapper, analyser les arguments d'une requête.
- string_decoder : permet de passer d'un buffer à une chaine.
- timers : global, permet d'appeler régulièrement des actions, poser un délai avant, …
- tls : SSL, chiffrer les échanges réseaux.
- dgram : datagram, UDP.
- util : différents outils, héritage, tests de type, …
- zlib : compression et lecture des formats gzip.
npm
npm est la commande du gestionnaire de paquets installé avec Node.js. Il permet donc de chercher / installer / désinstaller des paquets. Le registre de paquets se trouve sur le site npmjs.org.
Voici quelques commandes classiques:
- npm help
- npm install packagename
- npm update
- npm search
- npm ls
La définition d'un paquet se fait par l'ajout d'un fichier de description au format json: package.json. Vous pouvez créer ce fichier à l'aide de la commande npm init qui vous posera une série de questions.
Pour publier un paquet sur le registre, vous devez disposer d'un compte (création via la commande npm adduser) et utiliser la commande npm publish.
Par défaut, une installation de paquet se fait de manière locale à votre projet et non globale, comme avec python. Pour installer un paquet globalement, vous devez ajouter l'option -g.
Enfin, comme dernier cas d'utilisation, le cas du patch vous souhaitez utiliser un module qui n'est pas encore disponible, donc vous souhaitez utiliser sa version source, pour cela vous pouvez utiliser la commande npm link.
Pour aller plus loin avec Node.js
Et voilà, cette introduction à Node.js se termine. Vous l'aurez compris, d'autres articles arriveront bientôt pour vous montrer comment utiliser Node.js pour faire du développement d'applications web.
Avant de se quitter voici une liste de liens qui vous permettront d'aller plus loin.
Les officiels :
- #nodejs suivez l'actualité sur twitter
- #node.js sur freenode (IRC)
- communauté google+ française
- Node weekly (newsletter)
- Planet Nodejs (blogs)
- Node.js reactions (en gif animé)
- Art of Node (documentation)
- Export this (design pattern)
- The Node beginner book
- Node school
- Node Jitsu
Bibliothèques utiles :
- grunt ou gulp pour gérer le build de votre projet (watch, compress, compile, …)
- bower gestionnaire de package pour les développeurs front-end
- sqlite3, pg, mongodb pour vous connecter à vos base de données
- node-inspector pour le debug
- mocha, istanbul / blanket, karma pour les tests
- jshint, jslint pour écrire du javascript comme tout le monde et sans erreur de syntaxe
- less pour faire du css avec des variables et des mixins
- passport pour gérer l'authentification dans vos applications web
- q pour utiliser les promises (un pattern plus simple que les callbacks pour gérer l'asynchrone)
- request pour faire des appels http super simplement
Offre de services et formations
Makina Corpus dispose d'experts Node.js. Vous pouvez retrouver notre offre de formation Javascript ou nous contacter.
Actualités en lien
Générer un fichier PMTiles avec Tippecanoe
Exemple de génération et d’affichage d’un jeu de tuiles vectorielles en PMTiles à partir de données publiques.
Publier une documentation VitePress sur Read The Docs
À l'origine, le site de documentation Read The Docs n'acceptait que les documentations Sphinx ou MKDocs. Depuis peu, le site laisse les mains libres pour builder sa documentation avec l'outil de son choix. Voici un exemple avec VitePress.
Introduction à Node.js
Cet article présente Node.js et NPM. Vous y apprendrez ce qu'est Node.js, comment il est utilisé et comment l'installer.