Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const mysql = require('mysql');
- const morgan = require('morgan');
- const bodyParser = require('body-parser');
- const app = express();
- console.log('Connexion en cours...');
- // Configuration de la BDD.
- const connection = mysql.createConnection({
- host: 'localhost',
- user: 'root',
- password: '********',
- database: 'Portfolio'
- });
- // Connexion à la BDD.
- connection.connect(function (err) {
- if (err) {
- console.log(err);
- } else {
- console.log(`Connecté.`);
- }
- });
- // Middleware : s'éxécute avant les fonctions de routing.
- app.use(morgan('dev')); // Debug en console avec morgan (dev)
- app.use(bodyParser.json()); // pour analyser application/json
- app.use(bodyParser.urlencoded({ extended: true })); // pour analyser application/x-www-form-urlencoded
- // Route de base.
- app.get('/', (req, res) => {
- res.send("Bienvenue sur l'API de Lucas ROBIN !");
- });
- // GET : Lister toute les technologies.
- app.get('/tools/all', (req, res) => {
- sql = 'SELECT tools.name, tools.description FROM tools';
- // Questionne la BDD.
- connection.query(sql, function (error, results) {
- if (error) throw error;
- res.json(results);
- });
- });
- // POST : Lister toute les technologies. ( WITH SECURITY )
- app.post('/tools/all', (req, res) => {
- // Si la clé d'accès passée dans le body est correct...
- if (req.body.key === "*******") {
- sql = 'SELECT tools.name, tools.description FROM tools';
- connection.query(sql, function (error, results) {
- if (error) throw error;
- res.json(results);
- });
- } else {
- res.json(hasError("Clés d'accès invalide ou introuvable..."))
- }
- // res.send((req.body)); // Contenu du Body en methode post.
- });
- // GET : Lister une technologie.
- app.get('/tools/:id', (req, res) => {
- let params = req.params; // Paramètre(s) passé(s) dans l'URL.
- let inserts; // Variables à insérer dans la requête SQL.
- let sql; // Requête SQL.
- if (params.id) {
- inserts = [params.id];
- sql = 'SELECT tools.name, tools.description FROM tools WHERE tools.id = ?';
- sql = mysql.format(sql, inserts); // Prépare la requête SQL.
- // Questionne la BDD.
- connection.query(sql, function (error, results) {
- if (error) {
- res.json(hasError(error));
- } else {
- res.json(isSuccess(results));
- }
- });
- } else {
- res.json(hasError(`Cette requête attend un paramètre ID.`));
- }
- });
- // Port d'écoute
- app.listen(3000);
- //------------------------------------------------------------------------------
- function isSuccess(result) {
- return {
- status: 'success',
- result: result
- }
- }
- function hasError(message) {
- return {
- status: 'error',
- message: message
- }
- }
- //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement