Ich benutze Node/Express und Mungo, um eine App zu bauen. Ich erstelle 'Photo'-Objekte in meiner Datenbank (Schema unten gezeigt), das im Grunde genommen nur ein Bildobjekt ist.Anzeige von Mungo-Objekten auf EJS-Seite
var PhotoSchema = new mongoose.Schema({
image: { data: Buffer, contentType: String },
name: String
});
Ich kann erfolgreich laden und Foto-Objekte erstellen und jetzt bin ich die Schaffung eines/Bilder sehen, wo ich jedes Foto-Objekt zu extrahieren und sie als ein Bild zu machen. Ich benutze ejs für meine Ansichten. Nachdem einige googeln tun I hav mit den folgenden für meine images.ejs Datei kommen:
<% photos.forEach(function(photo){ %>
<img src="/img/<%=photo._id%>" >
<% }) %>
Wenn ich laden/images es heißt „Fotos nicht definiert ist“.
Dies ist das erste Mal, dass ich versucht habe, Mungo-Objekte direkt auf eine EJS-Seite zu extrahieren - muss ich noch etwas anderes tun, damit meine Funktion versteht, dass ich mich auf die Fotoobjekte in meiner Datenbank beziehe?
ich auch folgende Routen haben:
router.get('/img', function (req, res, next) {
try {
Photo.findOne({}, function (err, doc) {
if (err)
res.send(err);
if (doc) {
res.contentType(doc.image.contentType);
res.send(doc.image.data);
}
});
}
catch (e) {
res.send(e);
}
});
router.get('/img/:id', function (req, res) {
try {
Photo.findOne({ _id: req.params.id }, function (err, doc) {
if (err)
res.send(err);
res.setHeader('Cache-Control', 'public, max-age=3000000');
res.contentType(doc.image.contentType);
res.send(doc.image.data);
});
}
catch (e) {
res.send(e);
}
});
router.get('/images', function (req, res) {
try {
Photo.find({}, function (err, doc) {
if (err)
res.send(err);
res.render('images', { images: doc });
});
}
catch (e) {
res.send(e);
}
});
Vielen Dank!
Vielen Dank! So einfach, aber wahrscheinlich hätte ich es nicht selbst herausgefunden. – HarrytheCat