Création d’une application Web avec NodeJS et Angular V6- Partie 1 (Backend)
Dans ce tutoriel nous allons mettre en place une application qui va nous permettre de lister et créer des matières.
Nous allons utiliser une architecture 3 tiers pour notre application:
BACKEND (REST API) : NODE JS - EXPRES.JS
BASE DE DONNEES : MYSQL
FRONTEND: ANGULAR V6
BACKEND
OUTILS
MYSQL
SCHEMA BASE DE DONNEES
Ci-dessous le schéma de notre base de données, nous avons 3 tables t_matiere, t_etudiant et t_note.
CREATION BASE DE LA DONNEES
Nous allons utiliser PHPMYADMIN pour importer notre base de données:
TELECHARGER LA BASE DE DONNEES SUR GIT ET L’IMPORTER DANS PHPMYADMIN
Nous allons ensuite télécharger le schéma de notre base de données sur git (ci-dessous le lien du dépôt git) et l’importer dans phpmyadmin.
NODE JS
INSTALLATION
Pour installer NODE JS, cliquez sur le lien ci-dessous :
VERIFICATION
Pour vérifier que NODE JS est bien installé, tapez cette commande :
node -v
CREATION DU PROJET
Exécuter la commande ci-dessous pour créer le répertoire de notre projet NODE JS.
mkdir NoteProjetNode
INITIALISATION DU PROJET
Les commandes ci-dessous nous permettrons d’initialiser notre projet NODE JS:
cd NoteProjetNode
npm init
INSTALLER LES DEPENDANCES
Ensuite nous allons installer les dépendances dont nous avons besoin :
body-parser : Cette librairie nous permettra de décoder les données JSON envoyées par le FRONT au BACK.
express : Cette librairie sera utilisée pour exposer nos services web (rest api).
express-list-endpoints: Cette librairie va nous permette de lister nos services web.
my-sql: Cette librairie va nous permette de communiquer avec notre base de données mysql.
officegen: Cette librairie permet de générer un fichier word, nous l’utilisons pour générer les bulletins des étudiants.
npm install body-parser express express-list-endpoints mysql officegen --save
CONNECTION A LA BASE DE DONNEES
Le code ci-dessous va nous permettre de nous connecter à notre base de données mysql.
MISE EN PLACE DU MODULE MATIERE
Nous créons un dossier matiere.
mkdir matiere
CREATION DU MODELE - matiere/Matiere.js
Ensuite nous créons un fichier Matiere.js, qui est le modèle du module matiere. C’est dans ce fichier que sera la partie métier de notre module. Ici nous communiquons avec une base de données MYSQL mais nous pouvons communiquer aussi avec des API (par exemple l’api de facebook ou twitter).
Nous avons 2 méthodes :
getmatieres : Cette méthode ramène la liste de toutes les matières enregister dans notre base de données.
creatematiere: Cette méthode nous permet de créer une nouvelle matière.
CREATION DU CONTROLLER - matiere/MatiereController.js
Ici nous avons 2 routes :
get: Nous utilisons la méthode getmatieres du modèle Matiere pour ramener toutes les matières.
post: La méthode creatematiere du modèle Matiere qui nous permet de créer une matière.
EXPOSITION DES SERVICES WEB- app.js
Nous rendons nos services disponibles en les enregistrant avec express.
MISE EN PLACE DU SERVEUR - server.js
Nous mettons en place notre serveur node JS.
LANCER LE PROJET
Exécuter la commande ci-dessous pour lancer notre projet.
node server.js
STRUCTURE DU PROJET
TESTER LES SERVICES AVEC CURLS
Nous pouvons tester nos services grâce à CURL :
La première commande nous permet de tester le service récupération de toutes les matières et la dernière permet la création de matière.
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X GET http://localhost:3000/matierescurl -X POST -H "Accept: Application/json" -H "Content-Type: application/json" http://localhost:3000/matieres -d '{"libelle":"EPS","coefficient":"2"}'
TESTER LES SERVICES AVEC POSTMAN
Nous pouvons aussi utiliser POSTMAN pour tester nos services , ci-dessous un exemple;
GITHUB
Lien GitHub du projet :
Après le clone du dépôt, vous devez exécuter les commandes ci-dessous :
npm install
node server.js
AMELIORATION
Créer les méthodes Update et Delete Matiere.