猫鼬模型-包括GridFS图像参考



我正在学习如何使用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流库是权宜之计。以下是我认为应该发生的事情:

//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。我的思路对吗?

我想出了一个更好的方法。我使用的SVG图像都在16MB以下(相差很多)。SVG只是一个字符串,所以它很容易提供服务。重要的是要记住,还要提供适当的内容头(img/svg+xml)。

<<p> Mongoose.js模式/strong>
var svgPostSchema = mongoose.Schema({
    img: { data: String, contentType: String }
})

最新更新