一个领域可以具有很多价值吗?

时间:2019-05-15 12:27:41

标签: node.js mongodb mongoose

例如,我有一个这样的Scheme:

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}}">

请提供任何帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

  1. 当然可以。用猫鼬存储嵌套对象有两种方法。您可以使用subdocument,也可以像嵌套对象一样嵌套对象。两种方法之间的区别只是中间件和自动生成的_id字段。这是一个很好的答案:Mongoose subdocuments vs nested schema

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

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