Voici une série d'articles qui vous permettra créer des applications backend en Javascript.
Node.js est aujourd'hui un incontournable, il est donc essentiel pour un développeur de le maitriser.
Je vais donc publier un nouvel article environ au deux jours et petit à petit vous apprendrez tout ce qu'il y a à savoir sur Node.js
Pour ne rien manquer suivez moi sur twitter : https://twitter.com/EricLeCodeur
Les Modules NodeJS
Écrire du code dans un fichier c'est bien beau mais si votre application est moindrement importante, votre fichier va vite devenir trop volumineux.
C'est pourquoi il est préférable de séparer votre code en plusieurs modules (fichier) afin de rendre le code réutilisable et beaucoup mieux structuré
Voici un exemple
app.js
const name = 'Mike Taylor'
const greeting = function (name) {
console.log(`Bonjour ${name}, bienvenue en NodeJS`)
}
greeting(name)
Il pourrait être intéressant de rendre le module greeting réutilisable. Pour ce faire nous allons le placer dans son propre fichier appeler greeting.js
const greeting = function (name) {
console.log(`Bonjour ${name}, bienvenue en NodeJS`)
}
Par défaut NodeJS ne permet pas d'utiliser cette fonction à partir d'un autre module. Pour ce faire il faut indiquer au module quels éléments devront être "exportable" :
const greeting = function (name) {
console.log(`Bonjour ${name}, bienvenue en NodeJS`)
}
module.exports = greeting
À noter ici la dernière ligne 'module.exports = greeting', cette fonction permet l'utilisation de la fonction greeting à partir d'un autre module.
À partir de app.js vous pouvez maintenant charger ce module avec la fonction 'require'
const greeting = require('./greeting.js')
const name = 'Mike Taylor'
greeting(name)
La fonction 'require' va créer une référence avec le module greeting et placer cette référence dans la variable const greeting (cette variable aurait pu s'appeler un autre nom que greeting)
À noter que la fonction 'require(./greeting.js') utilise le path './' cela permet d'indiquer a NodeJS que notre module se trouve dans le même dossier que notre fichier app.js
Exportation multiple
Il est possible d'exporté plusieurs éléments avec la fonction module.exports. Voici un exemple: person.js
const name = 'Mike Taylor'
const car = 'Ford Mustang'
module.exports = { name, car }
L'export multiple se fait donc avec un objet qui contient plusieurs éléments.
const person = require('./person.js')
console.log(person.name, person.car)
À noter que la variable 'person' ne pointe par sur le 'name' ou 'car' directement, elle pointe sur l'objet qui est exporté. Donc pour retourné son contenu nous devons utiliser 'person.name'
Exportation multiple (syntaxe alternative)
Il est possible d'exporté plusieurs éléments avec la fonction module.exports. Voici un exemple: person.js
const name = 'Mike Taylor'
const car = 'Ford Mustang'
module.exports.name = name
module.exports.car = car
L'utilisation reste la même :
const person = require('./person.js')
console.log(person.name, person.car)
Il est également possible d'utiliser la deconstruction
const { name, car } = require('./person.js')
console.log(name, car)
La fonction 'require' exécute le module
Lorsque l'on utilise la fonction require, le module chargé est exécuté. Voici un exemple
// hello.js
const hello = function () {
console.log('Hello World')
}
modules.exports = hello
// app.js
const hello = require('./hello.js')
Dès que NodeJS exécute cette ligne, le module hello est également exécuté. Dans cette exemple, le module ne fait qu'un export mais si le module contenait du code, il serait exécuté, voici une exemple
// hello.js
const hello = function () {
console.log('Hello World')
}
console.log('Bonjour Node !')
modules.exports = hello
// app.js
const hello = require('./hello.js')
hello()
Si vous lancé app.js, vous verrez qu'il affichera 'Bonjour Node !' avant le 'Hello World' car comme mentionné, le 'require' exéctue le module.
Bref, tenez compte de ce fait lorsque vous créer vos modules afin d'éviter des comportement indésirable.
Conclusion
C'est tout pour aujourd'hui, suivez moi sur twitter : https://twitter.com/EricLeCodeur afin d'être avisé de la parution du prochain article (d'ici deux jours).
Top comments (6)
Hâte de découvrir la suite
Excellent article très bien construit et très instructif et je voulais savoir si vous allez aussi parler d'express js
Oui j'ai plusieurs articles sur Express déjà écrits. Ils vont suivre bientôt
J'attends ça avec impatiente
J'ai adoré lire un article technique en français. j'attends les prochains
Merci pour les bons mots. J'en fais question de fierté d'écrire dans ma langue maternelle.