4.1. Les modules Node.js externes

Alors, partons à la découverte ce nouveau type de modules que nous ne connaissons pas encore, les modules « externes ». On parle également de dépendances de notre projet, car ce sont des modules que l’on va aller récupérer à l’extérieur de notre projet, pour accélérer les développements de notre application.

Et où se trouvent ces fameux modules miracles ?  🤔

Tous les modules se trouvent sur le site officiel de NPM. Il s’agit tout simplement de la plus grande base de données de modules NPM, accessible librement !

Allez-y tout de suite, vous trouverez une barre de recherche. Par exemple, cherchez le module « Express » :

En fait, Express est simplement un module externe, en libre-service sur le site de NPM !

Comme vous pouvez le constater, on retrouve le paquet Express, disponible librement pour développer nos propres API Rest.

Alors, nous verrons comment installer ces modules externes dans notre projet plus tard, mais en attendant, sachez que lorsque nous installons des modules externes, Node.js les placera automatiquement dans un dossier de notre projet. Ce dossier se nomme arbitrairement node_modules. Cela peut être surprenant la première fois, il faut juste le savoir…

Et comment distingue t’on les modules externes de nos propres modules ?

C’est une excellente question ! En fait, dans la méthode require, on passe habituellement un chemin relatif, vous vous rappelez ? Eh bien si c’est le cas, Node.js ira simplement chercher le module en question.

Par contre, vous pouvez également passé le nom d’un module tel quel :

// Module "maison", car il y a un chemin relatif.
const pokedex = require('./pokedex') 
 
// Module externe, contenu dans le dossier node_modules.
const express = require('express')

Dans le deuxième cas, Node.js détecte qu’il s’agit d’un module externe car vous avez renseigné un nom et non un chemin relatif. Il ira alors récupérer le module express dans le dossier node_modules. Malin ce Node.js !

Et voilà, vous êtes désormais capable de faire la différence entre les modules internes et externes de votre projet Node.js.

Il ne nous reste plus qu’à voir un dernier type de module, à savoir les modules intégrés à Node.js.