02 - seeren-training/Node GitHub Wiki

Express

  • 🔖 Installation
  • 🔖 Routing
  • 🔖 MySQL

Nous observerons l'utilisation de Node.js en créant une api avec le framework express.


📑 Installation

image

Le générateur d'application est utile pour norer le projet.

npm install express express-generator

🏷️ Projet

Notre objectif est de router des endpoints, nous demandons la création d'un projet sans vue.

$ npx express --git --no-view my-project

Après avoir changé de répertoire nous devons installer les packages.

cd my-project
npm install

A chaque modification de fichier il faut redémarrer le serveur ce qui est très contraignant, nous alons alors installer un package pour résoudre ce problème.

npm install nodemon

Nous modifions le script attaché à start.

"scripts": {
  "start": "nodemon ./bin/www"
},

L'application est disponible à l'adresse: http://localhost:3000/.


👨🏻‍💻 Manipulation

Créer un projet et démarrer votre application


📑 Routing

Vous pouvez associer un path à un bloc d'instructions en fonction de méthodes.

router.get('/', function(req, res, next) {});

👨🏻‍💻 Manipulation

Initialiser des routes CRUD pour un endpoint.


🏷️ Response

Status

res.status(200);

👨🏻‍💻 Manipulation

Renvoyez le status code adapté en fonction de la méthode


Headers

res.setHeader(
    "Content-Type",
    "application/json; charset=utf-8"
);

👨🏻‍💻 Manipulation

Renvoyez les entêtes d'acceptation des origines, des entêtes et des méthodes


Body

res.send({foo: "Foo"});

👨🏻‍💻 Manipulation

Renvoyez un model ou une collection de models en fonction de la méthode.


🏷️ Request

Headers

  • Récupérer les headers
const headers = req.headers;
  • Récupérer un header
const host = req.header("host");

👨🏻‍💻 Manipulation

Envoyez une entête Unsupported Media Type si le type de contenu n'est pas json.


Body

const obj = req.body;

👨🏻‍💻 Manipulation

Envoyez les entêtes adaptés si le contenu attendu pour chaque méthode n'est pas la bonne.


📑 MySQL

Vous pouvez utiliser diférents drivers de stockage.

npm install mysql

👨🏻‍💻 Manipulation

Créez une table pour votre model


🏷️ Connection

const connection = mysql.createConnection({
  host     : 'localhost',
  user     : 'dbuser',
  password : 's3kreee7'
});
connection.connect();

👨🏻‍💻 Manipulation

Isolez votre connection


🏷️ Queries


👨🏻‍💻 Manipulation

Après vous être documenté sur le SELECT, INSERT, UPDATE, DELETE: complétez votre CRUD


Nous avons pu observer que Express comme son som l'indique nous offre une solution pour développer des API's par exemple efficace et simple