首页 > 解决方案 > 一个字段可以有多个值吗?

问题描述

例如,我有一个这样的方案:

var User_schema = new Schema({
  name: string,
  image:{
   avartar_image: String,
   thumbnai_image: String,
   story_image: String
  }
});

是否可以在 nodejs 和 mongoose 中创建一个具有许多值的字段?还有一个,如何将图像存储到 mongodb 并使用 mongoose 将图像推送回客户端?,我使用 Buffer 将图像存储在 mongodb 上,如下所示:

var Imgschema = new Schema({
    img: Buffer;
});

如果在用户请求服务器上的链接时将其发送给用户,我会这样做:

app.get('/', function (req, res, next) {
        Imgschema.findById('5cdnjwjadhad_ad14', function (err, object) {
          res.contentType('image/png');
          res.send(object.image, {imageToClient: object.image});
        });
      });

它将全屏图像发送给用户,但我希望图像显示在带有视图引擎的标签内,如下所示:

<img src="{{imageToClient}}">

请哪位大神帮忙,谢谢。

标签: node.jsmongodbmongoose

解决方案


  1. 当然可以。有两种方法可以使用 mongoose 存储嵌套对象。您可以使用subdocument,也可以像之前那样嵌套对象。两种方法的区别只是中间件和自动生成的 _id 字段。这是一个很好的答案:Mongoose 子文档与嵌套模式

  2. 将图像作为缓冲区存储在文档中并不是一个好主意,但如果需要,可以使用 base64 解码在浏览器中显示图像。

<img src="{{ 'data:image/png;base64,' + imageBuffer.toString('base64') }}" />

推荐阅读