Node JS – ExpressJS

Présentation de NodeJS

Node.js est une plateforme logicielle libre en JavaScript orientée vers les applications réseau. Elle utilise la machine virtuelle V8 et implémente sous licence MIT les spécifications CommonJS.

Elle permet d’effectuer des applications réseaux de façon très simple, et ainsi gagner beaucoup de temps de développement. Elle fait partie des premières plateformes choisi pour créer des REST Controller.

Sachant que l’environnement de Node est le JavaScript, il fonctionne principalement en asynchrone. De plus il est orienté évènement, ce qui signifie que rien dans le script n’est bloquant. Son but est de fonctionner différemment de ce qu’on a l’habitude de voir. Créer un système scalable devient beaucoup plus simple avec Node.

L’avantage de Node est sa communauté qui s’en donne à cœur joie afin de créer des librairie prête à l’emploi, d’où la facilité de développement sur cette plateforme.

 

 

Installation de NodeJS

Tout d’abord nous allons installer NodeJS ! Pour cela rendez-vous sur ce lien :

https://nodejs.org/fr/download/

Sélectionnez en fonction de votre système, ici moi ce sera l’installateur Windows (.msi) en 64-bit. La suite est une installation classique 😊.

 

Création du projet

Lorsque vous aurez installé NodeJS, il ne vous restera plus qu’à ouvrir un terminal, je vous recommande le PowerShell sur Windows à défaut du CMD. Afin de vérifier que NodeJS est bien installé tapez :

node -v

Si vous obtenez quelque chose comme l’image ci-dessous c’est que tout s’est bien déroulé, on peut donc passer à la suite :

L’objectif étant de créer notre premier script, je vous laisse vous placer dans le dossier qui vous conviendra le plus, pour faire simple je me placerai à la racine de mon disque. Vous pouvez le faire en ligne de commande ou avec l’explorateur de fichier.

Maintenant il est temps d’enfin créer notre script ! Tapez :

npm create

Vous allez devoir remplir le fichier de votre projet, c’est-à-dire :  package name, la version, le point d’entrée (qui sera le nom du fichier que nous allons créer ensuite), si vous utilisez un git pour ce projet etc… Vous devriez avoir quelque chose qui ressemble à ça :

Lorsque c’est fait vous aurez un nouveau fichier dans le dossier de votre projet (package.json) ! Si vous allez voir à l’intérieur vous verrez ce que vous avez rempli et vous pouvez évidement encore modifié des informations.

Il ne nous reste plus qu’a créer le fichier du script, si vous n’avez rien renseigné dans « entry point » le fichier s’appellera index.js par défaut. Pour l’instant vous devriez avoir ça :

Présentation et installation de ExpressJS

 

Nous utiliserons ExpressJS qui est une dépendance qui va nous permettre de créer facilement des controller REST. L’intérêt étant de créer un petit serveur qui nous servira d’API par la suite.

Il est temps d’ajouter notre dépendance, ouvrez le terminal dans le dossier et tapez :

npm install express --save

Vous deviez voir écrit que la dépendance express a été ajouté ! Ainsi que 2 petites choses dans votre projet : le dossier qui contiendra toutes les dépendances ainsi que le fichier « package-lock.json » que vous n’aurez jamais besoin de toucher. Il répertorie et gère les dépendances.

GET

Ça y est ! On peut maintenant écrire notre premier script, on va déjà tester si tout fonctionne avec un petit hello world. Mais tant qu’à faire faisons un controller ! Nous allons commencer par le GET. Je vous conseille d’utiliser Visual Studio Code pour écrire votre code, vous pouvez ouvrir directement le dossier du projet.

Voici le code :

 

const express = require('express')

const app = express()

 

app.listen(1234, function () {

console.log("Application lancé !")

})

 

app.get('/', function (req, res) {

res.send('Oui tout fonctionne bien !')

})

 

 

On initialise la dépendance et on récupère une instance de celle-ci.

Ensuite il faut démarrer le serveur, pour cela on appelle la méthode listen sur notre instance de express, et ont choisi le port d’écoute, ici 1234 en première paramètre. En second paramètre on peut y placer une fonction à la volée afin d’y placer du code qui sera lancé au démarrage du serveur et donc du script. Le second paramètre n’est pas obligatoire.

On ajoute ensuite un controller GET. Pour cela on appelle la méthode get sur notre app. Le premier paramètre sera le chemin vers notre controller et le second une fonction à la volée qui sera appelé lorsqu’on pointera sur le controller.

Le paramètre req correspond à la demande et res à la réponse. C’est res qui nous servira à écrire dans le page web à l’aide de la méthode send. Du coup si on appel http://localhost:1234/ nous sommes censé obtenir un « Hello world! ».

On va tester tout ça en lançant le script à l’aide de la commande, en admettons que votre fichier s’appelle index.js sinon changez en conséquence :

node index

Maintenant on se rend à l’url http://localhost:1234/ et vous devriez voir le fameux message.

 

POST, PUT, DELETE

Au tour du POST ! Voici le bout de code :

app.post('/movie', function (req, res) {

res.send('Post a new movie !');

});

Cette fois-ci on appelle la méthode post sur notre instance de express, toujours le chemin dans le premier paramètre, et dans le second nous aurons encore la fonction comme pour le GET.

On ne pourra pas tester avec notre navigateur, car par défaut le navigateur effectue toujours les requêtes en GET lorsqu’on met une URL. Je vous conseille donc de télécharger Postman. On en aura pas mal besoin.

  1. Tout d’abord on sélectionne le type de requête, ici POST et on place le chemin vers notre controller
  2. On « Send »
  3. Et voilà !

Ici notre POST ne fait rien de spécial, dans l’article suivant on l’utilisera pour ajouter des informations dans notre base de données ! Si on souhaite envoyer des paramètres, ils seront stockés dans le paramètre req de notre fonction. On peut donc les récupérer et les insérer dans une requête SQL.

C’est exactement le même principe pour le PUT et le DELETE :

app.put('/movie', function (req, res) {

res.send('PUT !');

});

 

app.delete('/movie', function (req, res) {

res.send('You delete a movie :o');

});

 

Vous pouvez mettre le même chemin aux controller si le type est différent, le script sait faire la différence ! Par exemple j’ai un controller pour ajouter et un autre pour supprimer un film qui porte le même nom. Vous pouvez tester tout ça avec Postman !

 

Présentation du projet

 

Nous allons faire un projet style TODO liste avec des films, afin de dire si on a vu tel ou tel film. Elle sera coupée en 3 parties :

  • La première partie étant de créer un script NodeJS avec ExpressJS comprenant des controller que notre application pour appeler.
  • La deuxième partie est la gestion de la base de données qui sera lié à nos controller REST, on utilisera une dépendance MySQL de Node dans notre script ExpressJS.
  • La troisième partie sera sous React Native qui dépend également de NodeJS. Elle permet de créer une application pour smartphone Android / IOS qui utilisera nos controller.

Première partie de MovieLister

La première partie va consister à préparer les controller dont on aura besoin.

Avec le code des exemples, on en a déjà une partie. Vous pouvez essayer seul sinon voici le code, on les rempliera avec la dépendance MySQL :

const express = require('express')

const app = express()

app.listen(1234, function () {

console.log("Application lancé !")

})

app.get('/', function (req, res) {

res.send('Oui tout fonctionne bien !')

})

app.get('/movies', function (req, res) {

res.send('Récupération de la liste de tous les films !');

});

app.get('/movie', function (req, res) {

res.send('Récupération d\'un film !');

});

app.post('/movie', function (req, res) {

res.send('Nouveau film ajouté !');

});

app.put('/movie', function (req, res) {

res.send('Modification du film effectué !');

});

app.delete('/movie', function (req, res) {

res.send('Film supprimé !');

});

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *