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?
OMG funktionieren sollte, Vielen Dank. Es funktioniert. Danke vielmals. –
@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