我正在尝试学习如何使用GridFS(MongoDB),Mongoose和Express。我的目标是获得POST
表格数据,包括SVG和JSON。我有以下型号:
var postSchema = mongoose.Schema({
title: String,
img: { data: Buffer, contentType: String }
})
var Post = mongoose.model('Post', postSchema);
我认为使用GridFS streaming library是有利的。以下是我认为应该发生的事情:
//What to do here?
app.post('/upload', function(req, res, next) {
var post = new Post;
post.img.data = fs.readFileSync(req.files.image);//Can I do this?
post.img.contentType = 'image/svg+xml';
post.title = req.title;
var writestream = gfs.createWriteStream([options]);
fs.createReadStream('/some/path').pipe(writestream);
post.save();
});
这是我非常困难的地方。我需要从POST
读取图像(我现在专注于SVG),以某种方式将它连接到我的模型,然后保存此模型并将图像保存到gridFS。我是在正确的轨道上吗?
答案 0 :(得分:0)
我想出了一个更好的方法来做到这一点。我正在使用的SVG图像都低于16MB(很多)。 SVG只是一个字符串,所以它实际上很容易服务。要记住的重要一点是也要提供正确的内容标题(img / svg + xml)。
Mongoose.js架构
var svgPostSchema = mongoose.Schema({
img: { data: String, contentType: String }
})