1
我正在寻找从MongoDB中检索图像并显示它们的好方法。例如,检索资料照片和个人资料页上显示它,这是我当前如何做它:ExpressJS:从MongoDB中检索图像并在Jade中显示
的个人资料页
block content
h1= session.user.name
img(src='/avatars')
路线
exports.avatars = (req, res) ->
users.find req.session.user, (err, user) ->
if user
res.writeHead('200', {'Content-Type': 'image/png'})
res.end(user.avatar.data, 'binary')
else
res.locals.flash = err
res.render('index', {title: 'Home'})
基本上我呈现配置文件页面,并且img
标记将请求发送回服务器以从数据库中提取用户的图片。我在MongoDB中将图像保存为BinData。不使用GridFS
,因为我期望照片很小。
有没有更好的方法来做到这一点?我试图使用res.render('users/show', {picture: data})
将图像数据直接发送到玉石视图,但img
标签不像这样,我不清楚为什么。这种方法是死路一条吗?
任何意见/建议将不胜感激。谢谢!
感谢您的回答。我明白你对一张照片所说的话,但如果我需要显示一系列图片和文字,该怎么办?我如何将所有这些信息提供给我的观点? – aeyang
好吧,那么你需要在任何需要显示的文本旁边加载img标签。这些标签中的每一个都会从图像/头像路径中请求适当的图像。 – saeed
但是当页面呈现时,我不知道会有多少图片。例如,用户可能在DB中存储了许多他的朋友的照片,并且我想在他的个人资料页面上显示这些照片... – aeyang