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.