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

时间:2014-07-08 06:40:43

标签: node.js mongodb svg 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 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。我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:0)

我想出了一个更好的方法来做到这一点。我正在使用的SVG图像都低于16MB(很多)。 SVG只是一个字符串,所以它实际上很容易服务。要记住的重要一点是也要提供正确的内容标题(img / svg + xml)。

Mongoose.js架构

var svgPostSchema = mongoose.Schema({
    img: { data: String, contentType: String }
})