2017-01-08 8 views
0

Ich arbeite an einem Online-Shop-Projekt. Ich benutze Node.js, express.js und MongoDB mit Mungo. Ich habe die Produktinformationen aus der MongoDB-Datenbank erhalten und an die Client-Seite gesendet. In meinem Fall kann ich all diese Daten auf meiner Client-Seite bekommen, aber vor dem Senden, wenn ich sie auf der Server-Seite auf der Konsole ausspreche, heißt es undefined.Wie drucke ich Daten aus der mongoDB Datenbank in Node.js?

Dies ist die Produkte Schema:

var schema = new Schema({ 
    imagePath: { 
     type: String, 
     required: true 
    }, 
    productName: { 
     type: String, 
     required: true 
    }, 
    productPrice: { 
     type: Number, 
     required: true 
    }, 
    productCategory: { 
     type: String, 
     required: true 
    }, 
    productShortInformation: { 
     type: String, 
     required: true 
    }, 
    productFullInformation: { 
     type: String, 
     required: true 
    }, 
    productViews: { 
     type: Number, 
     required: false 
    }, 
    productStock: { 
     type: Number, 
     required: true 
    } 
}); 

und hier ist mein Node.js Code

router.get('/category/summary', function(req, res, next) { 
    //getting my all products information 
    var products = Product.find(function (err, docs) { 
     if(err) { 
      console.log('Error Happened' + err); 
      return res.redirect('/'); 
     } else { 
      //HERE IS THE PROBLEM 
      //ALL PRODUCT NAME IS SHOWN UNDEFINED 
      //BUT WHEN I SEND THEM TO THE CLIENT, I GET PRODUCT NAME 
      for(var product in docs) { 
       console.log('Name: ' + product.productName); 
      } 

      res.render('shop/categorySummary', { 
       products: docs //sending these information to the client side 
      }); 
     } 
    }); 
}); 

Wenn ich versuche, dieses Produkt name zu drucken, ich undefined bekommen. Aber auf der Client-Seite kann ich die Produktinformationen ausdrucken.

Ich muss diese Daten manipulieren, bevor sie an die Client-Seite gesendet werden. Wie kann ich diese Produktinformationen vor dem Senden auf die Serverseite (in der Konsole) drucken?

Antwort

3
for(var product in docs) { 
    console.log('Name: ' + docs[product].productName); 
} 

Das

+1

OMG funktionieren sollte, Vielen Dank. Es funktioniert. Danke vielmals. –

+0

@BMShamsNahid Auf Stack Overflow sagen wir Danke von [** akzeptieren Antworten, die uns geholfen haben] (http://stackoverflow.com/help/accepted-answer). Es gibt ein grünes Häkchen neben der Antwort auf der linken Seite, die Sie ankreuzen :) – chridam

Verwandte Themen