我有图像存储在缓冲区中并在新闻中引用。当我填充图像时,我需要它们为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函数转换填充后的图像。