Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. const express = require('express');
  2. const mysql = require('mysql');
  3. const morgan = require('morgan');
  4. const bodyParser = require('body-parser');
  5.  
  6. const app = express();
  7.  
  8. console.log('Connexion en cours...');
  9.  
  10. // Configuration de la BDD.
  11. const connection = mysql.createConnection({
  12. host: 'localhost',
  13. user: 'root',
  14. password: '********',
  15. database: 'Portfolio'
  16. });
  17.  
  18. // Connexion à la BDD.
  19. connection.connect(function (err) {
  20. if (err) {
  21. console.log(err);
  22. } else {
  23. console.log(`Connecté.`);
  24. }
  25. });
  26.  
  27. // Middleware : s'éxécute avant les fonctions de routing.
  28. app.use(morgan('dev')); // Debug en console avec morgan (dev)
  29. app.use(bodyParser.json()); // pour analyser application/json
  30. app.use(bodyParser.urlencoded({ extended: true })); // pour analyser application/x-www-form-urlencoded
  31.  
  32. // Route de base.
  33. app.get('/', (req, res) => {
  34. res.send("Bienvenue sur l'API de Lucas ROBIN !");
  35. });
  36.  
  37. // GET : Lister toute les technologies.
  38. app.get('/tools/all', (req, res) => {
  39.  
  40. sql = 'SELECT tools.name, tools.description FROM tools';
  41.  
  42. // Questionne la BDD.
  43. connection.query(sql, function (error, results) {
  44. if (error) throw error;
  45. res.json(results);
  46. });
  47. });
  48.  
  49. // POST : Lister toute les technologies. ( WITH SECURITY )
  50. app.post('/tools/all', (req, res) => {
  51.  
  52. // Si la clé d'accès passée dans le body est correct...
  53. if (req.body.key === "*******") {
  54.  
  55. sql = 'SELECT tools.name, tools.description FROM tools';
  56. connection.query(sql, function (error, results) {
  57. if (error) throw error;
  58. res.json(results);
  59. });
  60. } else {
  61. res.json(hasError("Clés d'accès invalide ou introuvable..."))
  62. }
  63. // res.send((req.body)); // Contenu du Body en methode post.
  64.  
  65. });
  66.  
  67. // GET : Lister une technologie.
  68. app.get('/tools/:id', (req, res) => {
  69.  
  70. let params = req.params; // Paramètre(s) passé(s) dans l'URL.
  71. let inserts; // Variables à insérer dans la requête SQL.
  72. let sql; // Requête SQL.
  73.  
  74. if (params.id) {
  75.  
  76. inserts = [params.id];
  77. sql = 'SELECT tools.name, tools.description FROM tools WHERE tools.id = ?';
  78. sql = mysql.format(sql, inserts); // Prépare la requête SQL.
  79.  
  80. // Questionne la BDD.
  81. connection.query(sql, function (error, results) {
  82. if (error) {
  83. res.json(hasError(error));
  84. } else {
  85. res.json(isSuccess(results));
  86. }
  87. });
  88.  
  89. } else {
  90. res.json(hasError(`Cette requête attend un paramètre ID.`));
  91. }
  92. });
  93.  
  94. // Port d'écoute
  95. app.listen(3000);
  96.  
  97.  
  98.  
  99. //------------------------------------------------------------------------------
  100. function isSuccess(result) {
  101. return {
  102. status: 'success',
  103. result: result
  104. }
  105. }
  106.  
  107. function hasError(message) {
  108. return {
  109. status: 'error',
  110. message: message
  111. }
  112. }
  113. //------------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement