1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2016
    Messages : 2
    Points : 1
    Points
    1

    Par défaut Récupération d'objet depuis index.ejs

    Bonjour,

    Je réalise en ce moment un projet en NodeJS et une BDD avec MongoDB/Mongoose.
    Sur ma page j'affiche un produit que je récupère depuis ma BDD dans la collection Produits.
    Je veux que quand la personne clique sur acheter, je récupère l'objet pour l'envoyer dans ma BDD dans la collection Panier.
    Dans le but que l'acheteur voit les produits sélectionnés dans son panier, qui est sur une autre page.

    J'ai créé un fichier nommée "Method.js" dedans je met mes fonctions me permettant de récupérer les produits de ma BDD pour les afficher dans le index.EJS, en pensant à modifier mon index.js qui se trouve dans le dossier "routes".

    Vous trouverez en screen, ma boucle d'affichage de produits qui se trouve dans le index.ejs, ainsi que ma fonction "integrationPanier()" qui se trouve dans Method.js.
    Mon problème est que il ne reconnait pas les champs de mon PanierModel et donc m'affiche des erreurs.
    Si quelqu'un sait récupérer et peut me l'expliquer cela m'aiderais beaucoup.
    Merci d'avance




  2. #2
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 426
    Points : 9 526
    Points
    9 526

    Par défaut

    Salut massondark, bienvenue sur DVP

    Plutôt que de mettre des captures d'écran, mes nous ton/tes codes entre les balises [CODE] ici ton code [/CODE] , cela permet de faire un copier/coller pour faire des essais s'en avoir à tous retaper.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 24
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2016
    Messages : 2
    Points : 1
    Points
    1

    Par défaut

    index.ejs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    	<section>
    		<div class="container">
    			<div class="row">
    				<div class="col-sm-9 padding-right">
    					<div class="features_items"><!--features_items-->
    						<h2 class="title text-center">Objet en Vente</h2>
     
                            <% products.forEach(function (product) { %>
     
    							<div class="col-sm-4">
    								<div class="product-image-wrapper">
    									<div class="single-products">
    										<div class="productinfo text-center">
    											<img src="<%= product.Image %>" alt="error" width="268" height="249"/>
    											<h2><%= product.Prix %></h2>
    											<p><%= product.Nom %></p>
    										</div>
    										<div class="product-overlay">
    											<div class="overlay-content">
    												<h1><%= product.Nom %></h1>
    												<h4><%= product.Description %></h4>
    												<p>Tag : <%= product.Tag1 %></p>
    												<p>Tag : <%= product.Tag2 %></p>
    												<h2><%= product.Prix %></h2>
    												<a onclick="integrationPanier()" class="btn btn-default add-to-cart"><i class="fa fa-shopping-cart"></i>Acheter</a>
    											</div>
    										</div>
    									</div>
    								</div>
    							</div>
     
                            <% }); %>
     
    					</div><!-- /features_items-->
    				</div>
    			</div>
    		</div>
    	</section>
    Method.js :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    var mongoose = require('mongoose');
    var exec = require('exec');
    var express = require('express');
    var router = express.Router();
     
    // Correctif "(node:809) DeprecationWarning: Mongoose: Promise (mongoose's default Produitmise library) is deprecated)"
    mongoose.Promise = require('bluebird');
     
     
    ////////////////////////////// PARTIE PRODUIT ///////////////////////////////
     
    //Création Schema Produit
    var ProduitsSchema = new mongoose.Schema ({
        id : Number,
        Nom : String,
        Prix : Number,
        Description : String,
        Image : String,
        Tag1 : String,
        Tag2 : String
    });
    //FIN Création Schema Produit
     
     
     
    //Création Model Produit
    var ProduitsModel = mongoose.model('Produits', ProduitsSchema);
    //FIN Création Model Produit
     
     
     
    //Fonction Connect
    function connect(){
        //Connection BDD Collection Produits
        var mongoDB = 'mongodb://localhost/BDD_EB';
        mongoose.connect(mongoDB, {
            useMongoClient: true
        });
        mongoose.Promise = global.Promise;
        var db = mongoose.connection;
        db.on('error',console.error.bind(console, 'MongoDBconnection error:'));
        //FIN Connection BDD Collection Produits
    }
    //FIN Fonction Connect
     
     
     
    //Récupération données Produit
    function recuperationProduit(res) {
     
        connect();
        //Query
        var query = ProduitsModel.find(null);
        query.exec(function (err, comms) {
            if (err) { throw err; }
            // On va parcourir le résultat et les afficher
            var comm;
            for (var i = 0, l = comms.length; i < l; i++) {
                comm = comms[i];
                console.log('------------------------------');
                console.log('ID : ' + comm.id);
                console.log('Nom : ' + comm.Nom);
                console.log('Prix : ' + comm.Prix);
                console.log('Description : ' + comm.Description);
                console.log('Image : ' + comm.Image);
                console.log('Tag1 : ' + comm.Tag1);
                console.log('Tag2 : ' + comm.Tag2);
                console.log('------------------------------');
            }
     
            res.render('index', {
                products: comms
            });
        });
        //FIN Query
    }
    //FIN Récupération données Produit
     
    module.exports = recuperationProduit;
     
     
     
     
    ////////////////////////////// PARTIE PANIER ///////////////////////////////
     
     
    //Création d'un Schema Panier et insertion en BDD_EB de la collection Panier
    var PanierSchema = new mongoose.Schema ({
        id : Number,
        Nom : String,
        Prix : Number,
        Description : String,
        Image : String,
        Tag1 : String,
        Tag2 : String
    });
    //FIN
     
    //Création d'un Model Panier
    var PanierModel = mongoose.model('Panier', PanierSchema);
    //FIN
     
    //Enregistrement dans BDD Panier
    function integrationPanier(product){
        connect();
     
        //Information Item
        var item = new PanierModel({
            "id" : + product.id,
            "Nom" : + product.Nom,
            "Prix" : + product.Prix,
            "Description" : + product.Description,
            "Image" : + product.Image,
            "Tag1" : + product.Tag1,
            "Tag2" : + product.Tag2
        });
     
        item.save(function(err, createdTodoObject) {
            if (err) {
                console.log("Error Save Item");
            }
            console.log("Great Save Item", createdTodoObject);
        });
    }
    //FIN Enregistrement dans BDD Panier
     
    module.exports = integrationPanier;
    index.js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    var express = require('express');
    var router = express.Router();
    var mongoose = require('mongoose');
    var exec = require('exec');
     
    // Correctif "(node:809) DeprecationWarning: Mongoose: Promise (mongoose's default Produitmise library) is deprecated)"
    mongoose.Promise = require('bluebird');
     
    var recuperationProduit = require('./../Method.js');
    var integrationPanier = require('./../Method.js');
     
    /* GET home page */
    router.get('/', function(req, res, next) {
        recuperationProduit(res);
        integrationPanier();
    });
     
    /* GET login page */
    router.get('/login', function(req, res, next) {
        res.render('login', { title: 'Express' });
    });
     
    /* GET cart page */
    router.get('/cart', function(req, res, next) {
        res.render('cart', { title: 'Express' });
    });
     
    /* GET contact page */
    router.get('/contact-us', function(req, res, next) {
        res.render('contact-us', { title: 'Express' });
    });
     
    /* GET acceuil page */
    router.get('/index', function(req, res, next) {
        recuperationProduit(res);
        integrationPanier();
    });
     
    module.exports = router;

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/06/2006, 10h22
  2. [Sécurité] Problème de récupération d'objet sérialisé
    Par Mysticlolly dans le forum Sessions
    Réponses: 6
    Dernier message: 31/03/2006, 14h16
  3. Réponses: 4
    Dernier message: 08/03/2006, 19h07
  4. [SWING][JList] Réference à un objet depuis une ligne
    Par Blaise1 dans le forum Composants
    Réponses: 12
    Dernier message: 21/02/2006, 10h08
  5. [hibernate]Problème de récupération d'objet...
    Par roxx62 dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/07/2005, 11h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo