Comment puis-je utiliser un objet que je suis passé au jade dans une image, j'utilise également mongodb pour contenir les données.
Actuellement c'est mon code:
db.collection('blogposts', function(err, collection) {
if (err) throw err;
collection.find().toArray(function(err, docs) {
if (err) throw err;
res.render('table', { title: 'Blog Posts', tab: "list" , blogposts: docs });
});
});
J'ai donc les noeuds qui passent d'une collection mongodb à jade, Dans Jade, j'ai:
div.span9
table.table.table-bordered.table-striped.noborder
each row in blogposts
tr
td
div.blogtitle #{row.Title}
br
div.blogheading #{row.Heading}
br
div.namedate #{row.Namedate}
br
div.imagetable
img(src='')
br
div.blogposts #{row.Posts}
br
div.blogtags Tags: #{row.Tags}
Et ce que j'essaie de faire, c'est d'utiliser #{row.Image}
dans la img(src='')
réelle comme source.
Il semble que je doive utiliser une autre syntaxe ou quelque chose pour l'utiliser dans la source, le fait de l'insérer ne fonctionnant pas.
Il suffit de faire img(src= "http://" + row.Image)
Jade traitera la valeur de l'attribut src
comme une expression javascript, l'évaluera et restituera le code HTML comme vous le souhaitiez.
Tandis que si vous envoyez un lien, cela pourrait fonctionner comme cela a été détaillé. Si vous envoyez les données sous forme de chaîne codée en base64, vous devez ajouter les éléments suivants à vos données d'image:
"data: image/png; base64,"
Ainsi, vous auriez: img (src = "data: image/png; base64," + row.ImageDataBase64)
J'ai eu un problème similaire. Mon URL avait déjà https: // préfixé. La solution qui a fonctionné était:
img(src=row.Image)