Mongoose gridfs-stream, как заполнить коллекцию fs.file

Я использую модуль gridfs-stream в nodejs для хранения изображений.

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 ответ

user.photo имеет тип Schema.Types.ObjectId. Следовательно, user.photo.filename не будет существовать.

Вам необходимо загрузить файлы изображений в gridfs и получить идентификатор файла, присвоенный изображению в коллекции fs.files. Затем вы можете установить user.photo как fileId файла в fs.files.

Другие вопросы по тегам