socket.io : Module pour la communication en temps réel entre le serveur et le client.
const express = require('express');
const http = require('http');
const socketIO = require('socket.io');
const app = express();
const server = http.createServer(app);
const io = socketIO(server);
io.on('connection', (socket) => {
console.log('Nouvelle connexion socket!');
socket.on('message', (data) => {
console.log('Message reçu:', data);
io.emit('message', data); // Diffuse le message à tous les clients connectés
});
socket.on('disconnect', () => {
console.log('Connexion socket fermée');
});
});
app.get('/', (req, res) => {
res.sendFile(__dirname + '/index.html');
});
server.listen(3000, () => {
console.log('Serveur en cours d\'exécution sur http://localhost:3000');
});
helmet
helmet : Middleware pour améliorer la sécurité en ajoutant divers en-têtes HTTP.
const express = require('express');
const helmet = require('helmet');
const app = express();
app.use(helmet());
app.get('/', (req, res) => {
res.send('Bienvenue sur une page sécurisée!');
});
app.listen(3000, () => {
console.log('Serveur en cours d\'exécution sur http://localhost:3000');
});
Exemple d'un module interne (locale)
module personnalisé peut être une excellente façon d'organiser votre code de manière modulaire.
créer un module qui gère des opérations mathématiques de base.
1. Création du module operationsMathematiques.js :
// operationsMathematiques.js
// Définition du module avec une fonction pour ajouter deux nombres
module.exports = {
// Fonction pour additionner deux nombres
addition: function(a, b) {
return a + b;
},
// Fonction pour soustraire deux nombres
soustraction: function(a, b) {
return a - b;
},
// Fonction pour multiplier deux nombres
multiplication: function(a, b) {
return a * b;
},
// Fonction pour diviser deux nombres
division: function(a, b) {
// Vérification pour éviter la division par zéro
if (b !== 0) {
return a / b;
} else {
throw new Error('Division par zéro non autorisée');
}
}
};
2. Utilisation du module dans un fichier principal app.js :
// app.js
// Import du module personnalisé
const operationsMathematiques = require('./operationsMathematiques');
// Utilisation des fonctions du module
const resultatAddition = operationsMathematiques.addition(5, 3);
console.log('Résultat de l\'addition:', resultatAddition);
const resultatSoustraction = operationsMathematiques.soustraction(10, 4);
console.log('Résultat de la soustraction:', resultatSoustraction);
const resultatMultiplication = operationsMathematiques.multiplication(2, 6);
console.log('Résultat de la multiplication:', resultatMultiplication);
try {
const resultatDivision = operationsMathematiques.division(8, 2);
console.log('Résultat de la division:', resultatDivision);
} catch (erreur) {
console.error('Erreur:', erreur.message);
}
Exemple2
1. Module listeTaches.js :
// listeTaches.js
let taches = [];
function ajouterTache(nouvelleTache) {
taches.push(nouvelleTache);
}
function obtenirListeTaches() {
return taches;
}
module.exports = {
ajouterTache,
obtenirListeTaches
};
2. Fichier principal app.js avec Express.js :
// app.js
const express = require('express');
const listeTaches = require('./listeTaches');
const app = express();
const port = 3000;
// Ajout de quelques tâches à la liste
listeTaches.ajouterTache('Faire les courses');
listeTaches.ajouterTache('Répondre aux e-mails');
listeTaches.ajouterTache('Exercice physique');
// Route pour obtenir la liste des tâches
app.get('/taches', (req, res) => {
const taches = listeTaches.obtenirListeTaches();
res.json({ taches });
});
// Démarrage du serveur Express
app.listen(port, () => {
console.log(`Serveur en cours d'exécution sur http://localhost:${port}`);
});
Exemple3
création d'articles, la récupération de la liste des articles, et la récupération d'un article spécifique.
1. Module gestionArticles.js :