2013-08-04 44 views
7

Làm cách nào tôi có thể sử dụng một đối tượng mà tôi đã chuyển qua để tô màu trong hình ảnh, tôi cũng sử dụng mongodb để giữ dữ liệu.Chèn hình ảnh bằng cách sử dụng Jade và NodeJS

Hiện nay đây là mã của tôi:

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

Vì vậy, tôi có nodejs đi qua một bộ sưu tập MongoDB qua để ngọc, Sau đó, trong vòng Jade tôi có:

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} 

Và những gì tôi cố gắng làm là sử dụng #{row.Image} trong phạm vi img(src='') thực tế làm nguồn.

Dường như tôi phải sử dụng một số cú pháp khác hoặc một cái gì đó để sử dụng nó trong nguồn như chỉ việc đặt nó vào không hoạt động.

Trả lời

11

Chỉ cần làm img(src= "http://" + row.Image)

Jade sẽ đối xử với các giá trị thuộc tính src như một biểu javascript, đánh giá nó và làm cho HTML như bạn mong đợi.

+0

Cảm ơn, hiện tại nó đang dùng biến, tuy nhiên nguồn hình ảnh dựa trên liên kết (ví dụ: http://www.something.com/ picture.jpg). Vấn đề ở đây là mặc dù biến im đẩy qua có "xung quanh nó (nghĩa là nó hiển thị là" http://www.something.com/picture.jpg "), nó không nhận ra rằng nó là một liên kết bên ngoài và Tôi muốn biết làm thế nào để làm cho nó nhận ra rằng nó kéo hình ảnh từ một trang web? – brent

+1

Thêm giao thức "http: //" Trả lời được cập nhật –

+0

Xin lỗi tôi quên đề cập đến, nó đã có http : //, toàn bộ im gửi đến Jade là "http://www.something.com/picutre.jpg" – brent

0

Tôi gặp sự cố tương tự. Url của tôi đã được thêm vào https: //. Giải pháp đã hoạt động là:

img(src=row.Image) 
0

Trong khi nếu bạn đang gửi liên kết, nó có thể hoạt động theo cách đã được chi tiết. Nếu bạn đang gửi qua các dữ liệu như là một chuỗi mã hóa base64, sau đó bạn phải thêm vào trước dòng sau vào dữ liệu hình ảnh của bạn:

"dữ liệu: image/png; base64,"

Vì vậy, bạn sẽ có: img (src = "data: image/png; base64," + row.ImageDataBase64)

Các vấn đề liên quan