node.js - 一个字段可以有多个值吗?
问题描述
例如,我有一个这样的方案:
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}}">
请哪位大神帮忙,谢谢。
解决方案
当然可以。有两种方法可以使用 mongoose 存储嵌套对象。您可以使用subdocument,也可以像之前那样嵌套对象。两种方法的区别只是中间件和自动生成的 _id 字段。这是一个很好的答案:Mongoose 子文档与嵌套模式
将图像作为缓冲区存储在文档中并不是一个好主意,但如果需要,可以使用 base64 解码在浏览器中显示图像。
<img src="{{ 'data:image/png;base64,' + imageBuffer.toString('base64') }}" />
推荐阅读
- javascript - 如何删除此 masonry.js 布局中每张图片下方的水平空白区域?
- vba - VBA Excel 2016循环遍历多个范围返回偏移值
- android - 如何将 Dagger 2 Qualifier Annotation 指定给 Provider 函数构造函数参数?
- sql - 在 oracle 中创建现有表的完整副本
- android - 触摸/点击选择器
- java - 当我保存时,我在 Java Spring 中得到了这个异常
- angular - 无法在 Http 拦截器和主组件 Angular 2、Angular 6 中使用 Ng2-Translate 翻译键
- amazon-eks - 使用 eksctl 设置时无法使用 ssh 访问 EKS 工作程序节点
- javascript - 如何解决删除EventListener失败?
- git - 如何在已提交的提交上更改身份 GitHub