Makina Blog

Le blog Makina-corpus

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 ?

Node.js peut être comparé à Python, Ruby, Java, PHP. Vous trouverez une multitude de comparatifs sur Internet. Node.js présente de nombreux intérêts:
  • 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.
Mais si j'ai craqué ce n'est pour aucune de ces raisons, elles m'ont simplement confortées dans mon choix.
Non, en effet, j'ai choisi Node.js parce qu'il permet de faire du développement avec le langage Javascript. Le fait de passer d'un langage de programmation à l'autre est pénible. Autant rester dans un seul écosystème, et c'est un des arguments avancés par paypal dans son passage de Java à Node.js.
 

Comment installer Node.js ?

Pour l'installer vous pouvez utiliser une des trois méthodes ci-dessous :

  1. Utiliser votre gestionnaire de paquets (brew, macport, apt-get, …).
  2. Utiliser un des binaires disponibles sur le site officiel dans la rubrique téléchargement de Node.js.
  3. 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/');
Puis vous executez ce fichier avec la commande suivante :
$ 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 :

L'actualité :
Documentations et livres :
Framework web :

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

Image
Capture d'une partie de carte montrant un réseau de voies sur un fond de carte sombre. Au centre, une popup affiche les information de l'un des tronçons du réseau.
28/02/2024

Géné­rer un fichier PMTiles avec Tippe­ca­noe

Exemple de géné­ra­tion et d’af­fi­chage d’un jeu de tuiles vecto­rielles en PMTiles à partir de données publiques.

Voir l'article
Image
Read The Docs
01/02/2024

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.

Voir l'article
08/01/2014

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.

Voir l'article

Inscription à la newsletter

Nous vous avons convaincus