我可以在ref. 中实现get吗?



我有图像存储在缓冲区中并在新闻中引用。当我填充图像时,我需要它们为Base64 URL。是否可行

const mongoose = require('mongoose')
const Schema = mongoose.Schema({
title: String,
description: String,
images: [{ 
type: mongoose.Schema.Types.ObjectId, 
ref: 'File',
get: (image) => {
return { 
title: image.title,
url: `data:${image.mimeType};base64,${Buffer.from(image.data.data).toString('Base64')}`
}
}
}],
content: String,
status: String,
date: {
type: Date,
default: () => new Date()
}
}, { 
collection: 'news' 
})
module.exports = mongoose.models.News || mongoose.model('News', Schema)

不在模式声明中。每个模式映射到一个MongoDB集合,并定义文档的形状,您应该在这里查找有效类型(在这里查看更多关于SchemaTypes的信息)

我能想到两个解决办法。首先是在File中保存您的图像,而不是作为缓冲区,而是作为base64。

第二个解决方案是使用map函数转换填充后的图像。

最新更新