0% ont trouvé ce document utile (0 vote)
22 vues9 pages

Révision Nodejs

Le document présente une révision complète de Node.js, couvrant des concepts clés tels que l'environnement d'exécution, le moteur V8, les modules, et la gestion des versions avec NVM. Il aborde également des sujets comme la création de serveurs HTTP, l'utilisation de moteurs de templates, les middlewares, la connexion à des bases de données, et la construction d'API REST avec Express. Enfin, il traite des aspects de sécurité et d'authentification, notamment l'utilisation de JWT et Passport.js.

Transféré par

ALIAS
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
22 vues9 pages

Révision Nodejs

Le document présente une révision complète de Node.js, couvrant des concepts clés tels que l'environnement d'exécution, le moteur V8, les modules, et la gestion des versions avec NVM. Il aborde également des sujets comme la création de serveurs HTTP, l'utilisation de moteurs de templates, les middlewares, la connexion à des bases de données, et la construction d'API REST avec Express. Enfin, il traite des aspects de sécurité et d'authentification, notamment l'utilisation de JWT et Passport.js.

Transféré par

ALIAS
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Révision nodejs

✅ TD 1 : Introduction à [Link]
1. Qu’est-ce que [Link] et pourquoi a-t-il été créé ?
[Link] est un environnement d'exécution JavaScript côté serveur basé sur le
moteur V8 de Google. Il a été créé pour permettre d'exécuter du code
JavaScript hors du navigateur, notamment pour créer des applications réseau
rapides, scalables et non bloquantes.

2. C’est quoi V8 ?
V8 est le moteur JavaScript open-source de Google utilisé dans Chrome. Il
compile JavaScript en code machine natif, rendant l'exécution très rapide.

3. En quoi [Link] est-il différent des autres technologies


backend (PHP, Python) ?
Asynchrone & non bloquant (event-driven)

Utilise JavaScript côté serveur

Grande performance pour des applications temps réel

Single-threaded, mais utilise une boucle d'événements

4. Pourquoi [Link] est utilisé pour les applications en temps


réel ?
Grâce à son architecture asynchrone, il peut gérer de nombreuses connexions
simultanées sans bloquer, ce qui est idéal pour les chats, jeux, notifications,
etc.

5. Quel est le rôle du moteur V8 dans [Link] ?


Il exécute le JavaScript très rapidement et efficacement en le compilant en
code machine.

6. Importance de l’Event Loop :


L'Event Loop permet de gérer les appels asynchrones. Elle fonctionne comme
un gestionnaire de tâches qui traite les événements (I/O, timers...) sans bloquer

Révision nodejs 1
le thread principal.

7. Qu’est-ce qu’un module [Link] ?


Un module est une bibliothèque ou un fichier JavaScript exportant des
fonctions/objets à réutiliser.

Natifs : fs , os , http

Tiers : express , mongoose

8 & 10. Utilité du module fs + Exemple :


Il permet de manipuler le système de fichiers.

const fs = require('fs');
[Link]('[Link]', 'utf-8', (err, data) => {
if (err) throw err;
[Link](data);
});

9. Exemple avec os :

const os = require('os');
[Link]("Type d'OS:", [Link]());
[Link]("Architecture:", [Link]());
[Link]("Mémoire libre:", [Link]());
[Link]("Répertoire courant:", [Link]());

✅ TD 2 : NVM
1. Qu’est-ce que NVM ?
NVM (Node Version Manager) permet d’installer, de gérer et de basculer entre
plusieurs versions de [Link] sur une même machine.

2. Comment installer plusieurs versions ?

nvm install 14

Révision nodejs 2
nvm install 18

3. Commande pour voir les versions :

nvm ls

4. Changer la version :

nvm use 14

5. Définir une version par défaut :

nvm alias default 18

✅ TD 3 : npm et modules
2. Dev vs Prod :
Développement : outils comme nodemon

Production : performances optimisées, pas besoin des outils de dev

3. Module natif / local / installé :


Natif : inclus avec Node (fs, path)

Local : créé dans le projet

Installé : via npm ( express , axios )

4. CommonJS vs ES Modules :
CommonJS : require() (ancien)

ES Module : import / export (moderne, ES6)

5. Rôle de npm :
Gérer les dépendances, scripts, et publier des packages.

6. [Link] :

Révision nodejs 3
Fichier qui décrit le projet, ses dépendances, scripts, métadonnées.

7. Contenu essentiel :
name

version

dependencies

scripts

8. dependencies vs devDependencies :
dependencies : nécessaires en production

devDependencies : nécessaires uniquement en développement

9. npm install :
Installe tous les paquets listés dans [Link] .

10. [Link] :
Assure que tous les utilisateurs installent exactement les mêmes versions.

11. Liste des paquets du projet :

npm list --depth=0

12. Liste des paquets globaux :

npm list -g --depth=0

13. Commandes :

npm init -y
npm install express
npm uninstall express
npm install [email protected]

✅ TD 4 : Création d’un serveur HTTP


Révision nodejs 4
1. C’est quoi HTTP ?
Protocole de communication client-serveur sur le web.

2. Entités :
Client

Serveur

Requête/Response

URL, Méthodes, Statuts

3. Créer un serveur sans Express :

const http = require('http');


const server = [Link]((req, res) => {
[Link](200, {"Content-Type": "text/plain"});
[Link]("Bienvenue sur mon serveur");
});
[Link](3000);

4. Gestion des requêtes/réponses :


Node lit la requête (req), construit une réponse (res), et l’envoie.

5. Statuts HTTP :
200 OK

404 Not Found

500 Internal Server Error

6. Pourquoi CORS ?
Permet aux navigateurs d’autoriser des requêtes entre domaines différents.

7. Routes dynamiques :
Analyser [Link] , découper les paramètres.

8. Exemple [Link] avec Express :

Révision nodejs 5
const express = require('express');
const app = express();
[Link]('/', (req, res) => [Link]("Accueil"));
[Link](3000);

✅ TD 5 : Moteurs de templates
2. C’est quoi un moteur de template ?
Outil pour générer du HTML dynamique à partir de données (ex : EJS, Pug).

3. Rôle dans un projet [Link] :


Générer les pages HTML dynamiquement côté serveur.

1. Moteurs les plus utilisés :


EJS

Pug

Handlebars

2. Différences :
EJS : syntaxe proche HTML

Pug : syntaxe indentée

Handlebars : logique plus stricte

3. Pourquoi l’utiliser ?
Pour insérer dynamiquement des données dans les pages HTML.

✅ TD 6 : Middlewares
1. C’est quoi un middleware ?
Fonction qui intercepte les requêtes HTTP avant la réponse finale.

2. Fonctionnement Express (schéma simple) :

Révision nodejs 6
Req ---> Middleware 1 ---> Middleware 2 ---> Route Handler ---> Re
sponse

3. Différences :
Global : [Link]()

Spécifique : sur une route

Erreur : 4 paramètres (err, req, res, next)

4. Utilité :
Logging

Sécurité

Authentification

Gestion des erreurs

5. Ordre important :
Les middlewares sont appelés dans l’ordre d’écriture.

6. [Link]() vs [Link]()
use() : pour tous les types de requêtes

get() : uniquement pour GET

7. Pourquoi next() ?
Pour passer au middleware suivant. Sans lui, la requête est bloquée.

✅ TD 7 : Connexion DB
1. Différence SQL / NoSQL :
SQL : relationnelle (MySQL, PostgreSQL)

NoSQL : non relationnelle (MongoDB)

2. ORM vs Requêtes :
ORM : code plus propre, objets

Révision nodejs 7
Directes : requêtes SQL manuelles

3. Connexion Sequelize :

const { Sequelize } = require('sequelize');


const sequelize = new Sequelize('db', 'user', 'pass', {
host: 'localhost',
dialect: 'mysql'
});

4. Connexion Mongoose :

const mongoose = require('mongoose');


[Link]('mongodb://localhost:27017/test');

5. Différence des requêtes :


SQL : SELECT * FROM clients

NoSQL : [Link]({})

6. Avantages ORM/ODM :
Abstraction des requêtes

Meilleure gestion des modèles

✅ TD 8 : API REST avec Express


1. [Link] ?
Framework web pour [Link] qui simplifie la gestion des routes, middlewares
et requêtes HTTP.

2. Routes :

[Link]('/clients', ...)
[Link]('/clients', ...)
[Link]('/clients/:id', ...)
[Link]('/clients/:id', ...)

Révision nodejs 8
3. Params vs Body :
[Link] : paramètres dans l’URL

[Link] : données envoyées (JSON)

4. Exemples de middlewares :
[Link]() : parser JSON

cors() : gestion CORS

helmet() : sécurité

✅ TD 9 : Sécurité & Authentification


1. Authentification vs Autorisation :
Authentification : vérifier l’identité

Autorisation : vérifier les permissions

2. Pourquoi JWT ?
Léger, sécurisé, stateless

Transport d’infos dans le token

3. JWT vs OAuth2 vs Sessions :


JWT : Token, sans état

OAuth2 : Délégation, social login

Session : Stockée côté serveur

4. Pourquoi une expiration ?


Pour éviter qu’un token soit réutilisé indéfiniment.

5. Fonctionnement [Link] :
Utilise des stratégies (JWT, Google, Facebook…) pour gérer l’authentification
facilement.

Révision nodejs 9

Vous aimerez peut-être aussi