Jusqu'à maintenant nous avons écrit l'ensemble de notre code dans un seul fichier JavaScript mais comment s'organise-t-on dans un cas réel ?
Modules
NodeJS dispose d'un système permettant de découper notre application sous forme de modules. Il est ainsi possible de créer un fichier JavaScript séparé qui va disposer d'une portée locale. Toutes les variables qui y sont définies ne sont disponibles qu'au sein de ce fichier et ne seront pas accessible depuis l'extérieur.
// hello.js
let nom = 'Marc' // variable locale non exportée, elle ne sera pas disponible en dehors de ce fichier
let hello = 'Bonjour'
module.exports = hello
Il est ensuite possible d'inclure ce fichier dans afin d'utiliser les variables qui ont été exportées
let maVariable = require('./hello')
console.log(maVariable) // 'Bonjour'
On notera l'utilisation du ./
qui permet d'importer des fichiers relatifs au fichier courant.
NPM
NodeJS dispose d'une communauté assez importante qui partage ses modules au travers du gestionnaire de paquet NPM. Il permet de télécharger rapidement un module ainsi que ses différentes dépendances.
On commencera par initialiser npm via la commande npm init
, ce qui aura pour effet de créer un fichier package.json
qui permettra de suivre les modules à importer. Une fois notre projet initialisé il est possible de télécharger un module simplement via la commande
npm install --save <module>
Cette commande télécharge le module dans un dossier node_modules
ainsi que les dépendances de ce-dernier. Il est ensuite possible d'utiliser ce module directement dans notre application à l'aide de la méthode require.
// Exemple d'application express
let express = require('express')
let app = express()
app.get('/', function (req, res) {
res.send('Hello World!')
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
})