2013-08-04 10 views
7

Come posso utilizzare un oggetto che ho passato attraverso jade all'interno di un'immagine, sto usando anche mongodb per contenere i dati.Inserisci immagine usando Jade e NodeJS

Attualmente questo è il mio codice:

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 }); 
    }); 
}); 

così ho il nodejs che passano attraverso una collezione MongoDB fino alla giada, Poi all'interno di Giada ho:

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} 

E quello che sto provare a fare è utilizzare #{row.Image} all'interno del img(src='') effettivo come origine.

Sembra che io debba utilizzare qualche altra sintassi o qualcosa per usarlo all'interno del sorgente, in quanto il solo inserimento non funziona.

risposta

11

Basta fare img(src= "http://" + row.Image)

Jade tratterà il valore dell'attributo src come espressione javascript, valutare e rendere il codice HTML come ci si aspetterebbe.

+0

Grazie, ora sta prendendo nella variabile, tuttavia la fonte di immagine si basa su un collegamento (ad esempio http://www.something.com/ immagine.jpg). Il problema qui è che anche se la variabile im push through ha "intorno ad esso (che è la sua presentazione come" http://www.something.com/picture.jpg "), non riconosce che si tratta di un collegamento esterno e vuole ottenere l'immagine da localhost Mi stavo chiedendo come far riconoscere l'immagine di un sito Web? – brent

+1

Aggiungere il protocollo "http: //" Risposta aggiornata –

+0

Scusa se ho dimenticato di dire che ha già http : //, l'intera cosa che sto mandando a Jade è "http://www.something.com/picutre.jpg" – brent

0

Ho avuto un problema simile. Il mio URL aveva già https: // anteposto. La soluzione che ha funzionato è stata:

img(src=row.Image) 
0

Mentre se si invia un collegamento potrebbe funzionare nel modo descritto. Se si inviano sui dati come una stringa codificata base64, è necessario anteporre il seguente per i dati d'immagine:

"Dati: image/png; Base64,"

modo che avrebbe dovuto: IMG (src = "data: image/png; base64," + row.ImageDataBase64)