Nodejs: Détails d'un produit

Les étapes à suivre

  1. 1Model: créer la fonction findById() dans le model models/Produit.js qui permet d'exécuter la requêts sql select * from produits where id=?
  2. 2Controller: Ajouter la fonction details() dans le le controller controllers/ProduitController.js qui permet d'appeler la méthode findById() du model Produit.js puis envoyer les données à la vue views/produits/details.ejs
  3. 3Routes: Ajouter une ligne de routage dans le fichier de routage routes/ProduitRoutes.js
    routerProduits.get('/details/:id', produitController.details);
    qui permet de mapper la route produits/id et la fonction details() du controlleur
  4. 4View: créer la vue views/produits/details.ejs qui permet d'afficher le produit envoyé par la fonction la fonction details() du controlleur controllers/ProduitController.js
  5. 5Server: lancer le serveur node Serveur.js

1.Model: Créer la fonction findByID() dans le model models/Produit.js

/*Détail d'un produit */
Produit.findById = function (id, result) {
    dbConn.query("Select * from produits where id = ? ", id, function (err, res) {
    if(err) {
      result(err, null);
    }
    else{
      result(null, res);
    }
    });
    };

2.Controller: Ajouter la fonction details() dans le le controller controllers/ProduitController.js

/*Afficher les détails d'un produit*/
exports.details = function(req, res) {
    Produit.findById(req.params.id, function(err, produit) {
     res.render((__dirname+'/../../src/views/produits/details.ejs'),{data:produit[0]});
    });
    };

3.Routes: Ajouter une ligne de routage dans le fichier de routage routes/ProduitRoutes.js

/*Detail   un produit dont l'id est passé en paramètre*/
routerProduits.get('/details/:id', produitController.details);

4.Views: créer la vue views/produits/details.ejs

<!doctype html>
<html lang="en">
<head>
    <title>Details du produit <%= data.nom%></title>
<%- include('../nav.ejs') %>
<h1>Details du produit:<%= data.nom%></h1>
<div class="card-body">
 
 <table class="table">
 <thead>
  <tr>
      <th scope="col">#</th>
      <th scope="col">Nom</th>
      <th scope="col">Marque</th>
      <th scope="col">Prix</th>
      <th scope="col">QteStock</th>
  </tr>
     </thead>
     <tbody>
  <tr>
      <td><%= data.id%></td>
      <td><%= data.nom%></td>
      <td><%= data.marque%></td>
      <td><%= data.prix%></td>
      <td><%= data.qtestock%></td>
      
  </tr>
    </tbody>
 </table>
 
   <a class="btn btn-success  edit" href="../produits/modifier/<%=data.id%>">Modifier</a>         
   <a class="btn btn-info info " href="../produits/details/<%=data.id%>">Détails</a>         
   <a class="btn btn-danger delete" onclick="return confirm('Comfirmer la suppression?')" href="../produits/supprimer/<%=data.id%>">Supprimer</a>         
 </div>
</div>
</body>
</html>

5.Server: : lancer le serveur node Serveur.js

node Serveur.js








Cours et TPs