Mongoose gridfs-stream如何填充fs.file集合

时间:2014-05-28 09:51:04

标签: javascript node.js mongoose gridfs-stream

我在nodejs中使用gridfs-stream模块来存储图像。

var db = require('config/db');
var Schema = require('mongoose').Schema;

var schema = new Schema({
    name: String,
    photo: Schema.Types.ObjectId // store file ObjectId
});

var model = db.model('User', schema);

model.findById('123...', function(err, user) {
     console.log(user.photo) // only returning file ObjectId
     console.log(user.photo.filename) // error
});

如何填充用户照片以便我可以访问文件信息?

我知道我的数据库中有fs.files和fs.chunks。但是我应该为它们创建架构以便我可以引用我的模型吗?

1 个答案:

答案 0 :(得分:1)

user.photo的类型为Schema.Types.ObjectId。因此,user.photo.filename将不存在。

您需要将图像文件上传到gridfs并获取fs.files集合中图像的fileId。然后,您可以将user.photo设置为fs.files中文件的fileId。