Advertisement
Guest User

Untitled

a guest
Jan 16th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.88 KB | None | 0 0
  1. //On importe les dependances avec NodeJS via la fonction require()
  2. // Permets de charger le module express dans une variable
  3. var express = require("express");
  4.  
  5. // Création de l'application
  6. var app = express();
  7.  
  8. // Permets de charger le module express-handlebars dans une variable
  9.  
  10. var expressHbs = require('express-handlebars');
  11.  
  12. // Permets de charger le module body-parser dans une variable
  13. var bodyParser = require('body-parser');
  14.  
  15. // Définit 'hbs' comme moteur de vue pour l'application
  16. // Moteur de vue: Responsable de créer l'HTML des views
  17. app.set('view engine', 'hbs');
  18. app.engine('hbs', expressHbs({
  19. extname: 'hbs'
  20. }));
  21.  
  22. // Récupère les données des formulaires de la page, les formate et permets d'y accéder via req.body
  23. app.use(bodyParser.urlencoded({
  24. // extended:Permets de jouer avec des tableaux
  25. extended: true
  26. }));
  27.  
  28. // Permets de charger le module mongoose dans une variable
  29. var mongoose = require('mongoose');
  30. // code de connection a la base de donnée
  31. mongoose.connect('mongodb://localhost/app');
  32. // Création d'un template tâche
  33. // Défini la structure de la tache qu'on stocke
  34. var Todo = mongoose.model('Todo', {
  35. task: {
  36. type: String,
  37. required: true
  38. }
  39. });
  40.  
  41. // Permets de charges les fichiers statiques se trouvant dans le dossier public
  42. // Permets de se servir directement dans fichiers (images, css...)
  43. app.use(express.static('public'));
  44.  
  45.  
  46. // var data = [];
  47. // var counter = 0;
  48.  
  49. // définit la route basique, vers l'index et la fonction de callback
  50. //app.get route vers page d'index puis on
  51. app.get("/", function(req, res) {
  52. //Vérifie si il y existe déja une liste de tâches
  53. Todo.find(function(err, arrayOfItems) {
  54. res.render("index", {
  55. item: arrayOfItems
  56. });
  57. });
  58. });
  59.  
  60. // app.post(): Achemine les requetes HTTP POST vers /client_to_server via la fonction de callback spécifiée
  61. app.post("/client_to_server", function(req, res) { //c'est la méthode qui va etre appellée (quand je clique sur AJOUTER)
  62. // crée un objet "Todo" dans lequel il insère les données du formulaire récupérée via le body-parser
  63. Todo.create({
  64. task: req.body.userData //permet de récupérer les données du formulaire grace à bodyParser au dessus & userdata c'est la tache que j'enregistre (le label) voir index
  65. });
  66. // Redirige vers l'index
  67. res.redirect("/");
  68. });
  69.  
  70. // Permets de récupérer une tâche dans la bdd et de la modifier via son id
  71. app.get('/delete/:id', function(req, res) {
  72. //Cherche l'objet Tâche ayant l'id correspondant dans la bdd
  73. Todo.findById(req.params.id, function(err, todo) {
  74. if (!err) { //___Si pas d'erreur lors de la recherche, on supprime
  75. todo.remove();
  76. } else { //____Si l'objet n'est pas trouvé dans la Base de Données on retourne une erreur
  77. return err
  78. }
  79. });
  80. // on retourne à l'index
  81. res.redirect('/');
  82. });
  83.  
  84. // Permets d'éditer une tâche, renvoie vers la page d'édition et appelle la fonction de callback
  85. app.get("/edit/:id", function(req, res) {
  86. // Cherche la tâche correspondante dans la base de donnéevia son id passé en paramètre
  87. Todo.findById(req.params.id, function(err, task) { //permet de récupérer les données du formulaire grace a bodyParser
  88. // renvoie la page HTML "edit" pour pouvoir aller dessus
  89. res.render("edit", {
  90. todo: task
  91. });
  92. });
  93. });
  94.  
  95. // Permets de récupérer les données du champ d'édition {TODO: todo} et de modifier la tâche
  96. app.post('/update/:id', function(req, res) {
  97. Todo.findById(req.params.id, function(err, todo) {
  98. // Permets d'aller modifier a base de données
  99. todo.task = req.body.updated_task;
  100. todo.save();
  101. });
  102. // Renvoie à la page d'index
  103. res.redirect('/');
  104. });
  105.  
  106.  
  107. //Rédirige vers l'index
  108. app.get("*", function(req, res) {
  109. res.redirect("/")
  110. });
  111.  
  112. // Indique l port écouté par l'application https
  113. app.listen(3000);
  114. // Texte affiché lorsque le serveur htpp fonctionne
  115. console.log("Le serveur est en ligne !");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement