Création d’une application Web avec NodeJS et Angular V6- Partie 1 (Backend)

Daouda Diallo
Code d'Ivoire
Published in
4 min readJul 6, 2018

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:

http://localhost/phpmyadmin

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.

--

--

Daouda Diallo
Code d'Ivoire

Software Engineer/ Objectif Libre Developer | Co-founder and CTO of @legafrik. I game e-sport, football, and open source #js #typescript #angular #node