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
📑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