Categories: Articles tech

Boîte à outils Node.js : ce qu’il vous faut pour l’utiliser efficacement

L’une des forces de Node.js est l’écosystème de modules qui gravite autour afin de pouvoir réaliser n’importe quel projet. Dans cette page, vous trouverez ci-dessous une liste de modules JavaScript qui méritent d’être connus de tous développeurs NodeJS

L’une des forces de Node.js est l’écosystème de modules qui gravite autour afin de pouvoir réaliser à peu près n’importe quel projet. Très souvent utilisé pour des projets web et des outils CLI (Command Line Interface), ces modules, qu’ils soient natifs ou non, vous permettent d’intégrer toute sorte de fonctionnalités à votre application sans avoir à les développer.

Dans cette page, vous trouverez ci-dessous une liste de modules JavaScript qui méritent d’être connus de tous développeurs NodeJS. Rendez-vous dans notre section Tutoriels pour découvrir comment se servir de ces modules.

Modules Natifs NodeJS

Les modules Natifs à NodeJS sont implémentés directement dans l’API du moteur. Pour les utiliser dans votre code JavaScript, il suffit d’ajouter une ligne require('nomDuModule') comme suit:

const fs = require('fs')

Module HTTP

Le module HTTP, HTTP/2 ou HTTPS apporte les fonctionnalités de requêtes. Grâce à l’utilisation de ce module natif à NodeJS, vous pourrez développer des fonctions ayant besoin de faire des appels à des API sans avoir recours à un package externe plus lourd.

Comme montré dans notre page dédiée, le module HTTP permet également de créer un serveur HTTP extra-light capable de recevoir des requêtes de navigateurs, applications mobiles ou d’autres APIs.

Module FS

Le module node FS, pour FileSystem, est l’outil adapté pour manipuler des fichiers sur la machine. Grâce à lui vous pourrez créer, lire, déplacer, supprimer des fichiers. Dans le cas d’un serveur web, c’est ce module qui est utilisé pour créer des fichiers de logs. Dans le cas d’un outil CLI, vous pourrez développer des scripts de rangement de fichiers ou d’archivage.
Pour apprendre comment l’utiliser, découvrez notre page dédiée au module Node File System.

NPM

NPM est le gestionnaire de paquets pour Node js. Installé en même temps que node, il vous permet de télécharger des modules tiers pour vos applications. Grâce à la communauté, vous avez accès à plusieurs dizaines de millions de modules pour accélérer votre développement JavaScript.

Découvrez notre page dédiée pour apprendre tout ce qu’il faut savoir sur le NPM de Node.

Modules Essentiels

ExpressJS

Express est le framework le plus populaire de Node.js pour la conception d’un serveur web. Que ce soit pour un site web ou une API, sa légère sur-couche par rapport à Node permet des performances remarquables. Pour en savoir plus, j’ai consacré une page spéciale dédiée à Express (intérêt, installation, démarrage d’un projet…)

Body-Parser

Body Parser est un must-have lorsque vous développez une API ou une application web via express. Ce module vous permet d’interpréter, d’où le nom “parser”, le corps JSON d’une réponse HTTP.

Axios

Axios est un package incontournable dès lors que vous avez besoin de faire des requêtes HTTP autres que des GET. Cette librairie, téléchargée près de 10 millions de fois par semaine, simplifie considérablement la syntaxe de votre code concernant les appels HTTP.

ESLint

ESLint est une librairie qui vient analyser votre code JavaScript et vous proposer des corrections. Installé comme une dépendance de développement sur votre projet via NPM ou Yarn, vous pourrez configurer votre projet afin de suivre les bonnes pratiques de JavaScript proposées par Airbnb, Google ou ESLint Standard. Vous pourrez surcharger ou imposer vos propres règles.

Postman

Postman est un outil incontournable pour le développement et le maintient d’une API REST. Il permet d’effectuer des requêtes HTTP via une interface graphique afin de ne plus avoir à attendre un Frontend ou d’avoir une requête curL complexe. Il est également utilisé pour effectuer divers tests automatisés sur votre API.

Modules nodejs pour connecter une base de données

Le but d’un serveur nodejs est de pouvoir réaliser les opérations de lecture et écriture de données sur une base de données. Node est aussi bien capable de s’interfacer avec une base MySQL qu’une base NoSQL telle que MongoDB, Redis, Cassandra ou Neo4J.

Ces interactions peuvent aussi bien se faire directement avec la base de données via un module driver tel que MySQL, que via un ORM comme Sequelize, qui va abstraire la syntaxe native de la base de données pour vous simplifier le développement.

Certains frameworks nodejs tels qu’Adonis ou Sails vont être livrés avec leur ORM recommandé, respectivement Lucid et Waterline. Ces derniers sont conçus pour abstraire au maximum la relation entre l’application et la base de données, vous offrant une simplicité au développement et vous protégeant des failles les plus courantes auxquelles vous pourriez vous exposer si vous deviez écrire vous-même vos requêtes. Ce service vient toutefois à un coût, qui est parfois celui de la performance. Dans certains cas une requête native pourra être mieux conçue et donc plus performante qu’une requête automatiquement construite par un ORM.

Modules pour tests automatisés

Mocha, Chai, Sinon, Istanbul

Mocha a longtemps été la librairie dominante lorsqu’il s’agit de tests automatisés sur du code JavaScript. D’autres outils se sont construits autour de Mocha pour concevoir une suite complète pour tester une application JavaScript de bout en bout :

  • Chai par exemple est une librairie des librairies d’assertion nécessaire à Mocha. Elle vient offrir d’évaluer ce que son code doit produire via différentes syntaxes comme expect, assert ou should. Par exemple, vous pourrez aussi bien tester qu’une fonction sensée retourne un boolean en écrivant : foo.should.be.a(false), expect(foo).to.be.a(false) ou assert.equal(foo, false)
  • Sinon est une librairie qui est venue apporter une solution pour créer des spies, stubs et mock à nos tests, rendant ainsi possible de rédiger des tests unitaires isolés les uns des autres ;
  • Istanbul vient analyser le code et évaluer la couverture des tests, afin de voir si vos tests couvrent bien l’ensemble de votre code.

Jest

Conçue par les équipes de Facebook avant d’être mise open source, Jest a su conquérir le cœur des développeurs JavaScript, aussi bien côté frontend que backend. Son API complète et ses performances d’exécution des suites de tests en ont fait une des librairies de tests les plus populaires dans le monde du JavaScript.

Librairies et Frameworks pour un serveur web

Nest

NestJS est le framework backend qui connaît la plus grosse croissance à la fois dans son nombre de téléchargements que dans la taille de sa communauté. Ayant une syntaxe similaire au framework front-end Angular, Nest encourage les développeurs à coder avec typescript.

Adonis

Adonis est un framework complet, similaire à Rails pour Ruby ou Laravel pour PHP. Il va embarquer un ORM pour se connecter et faire ses requêtes à la base de données et un moteur de templating pour servir ses vues.

Fastify

Fastify est un framework nodejs dit « bas niveau ». A l’instar d’ExpressJS, Fastify laisse la main aux développeurs pour choisir les librairies et implémenter les fonctionnalités. En revanche, Fastify brille par ses performances et par sa capacité à encapsuler du code en plugins, permettant d’isoler les modules facilement et d’avoir un code source bien construit

Koa

Ayant pour but d’être un framework léger (environ 500 lignes de code) et robuste pour des applications webs et API, Koa tire le bénéfice d’une syntaxe Async/Await afin d’éviter les callbacks qu’on peut souvent retrouver dans express, permettant une syntaxe plus claire et rend la gestion des erreurs plus facile.

Loopback

Conçue comme une sur-couche d’express, Loopback est une librairie qui permet la mise en service d’une API rest en un minimum de temps. Via un simple fichier de configuration, Loopback génère le code de l’API automatiquement, suivant une architecture éprouvée et permettant au développeur de rapidement se concentrer sur les besoins fonctionnels de son application. Loopback simplifie également la connexion à une base de données, qu’elle soit SQL ou MongoDB.

Services pour déployer son app NodeJS

Plateform as a Service (PaaS)

Les PaaS sont des services qui vous permettent de déployer votre application Node.js (ou autre) depuis votre terminal, sans avoir à gérer toute une machine virtuelle Linux. Leur service vient abstraire tout le travail d’administration système et d’installation de l’environnement pour vous laisser déployer en une ligne de commande.

Cette solution est souvent la plus simple et la plus adaptée lorsque vous démarrez ou lorsque vous voulez déployer une petite application. Heroku, Google App Engine et AWS Elastic Beanstalk sont les plus gros acteurs du marché. Clever Cloud et Plateform.sh proposent également des solutions similaires made in France.

Infrastructure as a Service (IaaS)

Les IaaS proposent des instances Linux avec une puissance de calcul et de la RAM dédiée. Elles vous sont facturées à l’heure d’utilisation. Ces solutions sont moins coûteuses que les PaaS mais elles demandent que vous réalisiez vous-même l’installation de votre environnement.

AWS, GCP et Azure proposent tous les 3 des produits IaaS. Vous trouverez également des fournisseurs IaaS de niveau 2, qui simplifient l’utilisation par rapport aux offres GAFA, tel que Digital Ocean.

Pour aller plus loin:

Avec plusieurs milliers de nouvelles librairies publiées chaque jour sur npm, il est parfois difficile de suivre toutes les nouvelles librairies qui méritent d’être connues. C’est pourquoi nous vous avons préparé les pages suivantes afin de vous guider:

DANS LA CATÉGORIE NODENodeJs : le guide complet pour tout comprendre du Javascript serveur

Découvrez notre guide complet sur NodeJS, ce runtime qui permet aux serveurs d’interpréter du code JavaScript. Très utilisé pour des projets API et web, NodeJS et ses frameworks permettent de répondre à une grande quantité de requêtes simultanées. Node server : tout savoir sur la création de serveur et le fonctionnement

Coder un serveur Node est beaucoup plus facile à faire qu’on peut imaginer. Appréhender son fonctionnement est une autre histoire. Pour faciliter votre compréhension des challenges auxquels vous ferez face une fois votre premier Node server créé, il est important de comprendre comment il fonctionne.

Rayed Benbrahim

Recent Posts

Communauté Tech et féminine : Interview avec Helvira de Motiv’her

Elles sont passées où les femmes dans la tech ? Entre le manque de représentation…

1 jour ago

Consommer des APIs HTTP en PHP comme un pro avec Nicolas Grekas.

Dans cette vidéo, on interview Nicolas Grekas, contributeur clé de Symfony, pour discuter de sa…

1 jour ago

Trouver son job grâce à WeLoveDevs.

 Comment trouver son job dans la tech ? Marie a la réponse ! Grâce à…

3 jours ago

Adobe, L’empire créatif.

Adobe, l'empire créatif, et pas des moindres ! Belle ascension de la part de ces…

7 jours ago

La MAO musique ou musique assistée par ordinateur

Est-ce plus simple de créer des morceaux avec les outils de Musique Assistée par Ordinateur…

7 jours ago