1

我正在寻找从 MongoDB 检索图像并显示它们的好方法。例如,要检索个人资料图片并将其显示在个人资料页面上,我目前是这样做的:

个人资料页

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标签不喜欢这样,我不清楚为什么。这种方法是死胡同吗?

任何意见/建议将不胜感激。谢谢!

4

1 回答 1

0

将图像数据直接发送到玉视图会起作用,如果

a)您对图像数据进行了base64编码

b)以“数据:”为前缀

但我不建议您这样做,您实际上是在 html 中嵌入图像。

相反,您应该创建一个单独的路由来处理您的图像/头像。

例如,您的头像的图像源应该类似于

img(src='http://mydomain.com/avatars/user1.jpg')

当浏览器请求此图像时,您会使用从 mongo 检索到的图像数据进行响应。

于 2012-10-02T18:17:57.033 回答