У меня проблема при попытке заполнить изображения из MongoDB gridfs как часть "Схемы плаката". Использование среднего стека с бэкэндом RESTful. Теперь я могу писать в gridfs и иметь fs.files и fs chunks, но у меня возникли некоторые проблемы, когда я пытаюсь отправить картинки в Angular. Я пытаюсь создать такую веб-страницу, как Facebook, где у меня будет страница для демонстрации всего «постера», а у каждого «постера» будет пара картинок. Вот что у меня есть:
Backend get poster router: Это моя модель поста
dateAdded : { type: Date, default: Date.now() },
validation : { type: Boolean, default: true },
author : {
id : { type: 'ObjectId', ref: 'User', index: true },
userName : {type: String, default: null}},
location : { type: String, default:null },
pictures : { type: mongoose.Schema.Types.Object, ref: 'picture', index: true },
content : { type: String, default: null },
exports.publicGet = async function (req, res) {
// variables defined in the Swagger document can be referenced using req.swagger.params.{parameter_name}
var fields = ['_schemaName',
'dateAdded',
'location',
'pictures',
'content',
'author'];
var poster = mongoose.model('Posters');
var query = {};
var sort = {
dateAdded: -1
};
_.assignIn(query, { '_schemaName': 'Posters'});
try{
var data = await utils.runDataQuery('Posters',
query,
fields, // Fields
sort, // sort
false,
true);
// console.log('data', data);
utils.recordAction('Get', 'Poster', 'public');
return actions.sendResponse(res, 200, data);
}
catch(error){
defaultLog.errorLog.info( 'Error: ', error);
return actions.sendResponse(res, 400, error);
}
};
Это utils.runDataQuery, где я пытаюсь заполнить изображение, которое хранится вgridfs в постер.
populatePicture && {
'$lookup': {
'from': 'fs.files',
'localField': 'pictures',
'foreignField': '_id',
'as': 'pictures'
}
},
populatePicture && {//this will populate the binary file... which I think is not correct
'$lookup': {
'from': 'fs.chunks',
'localField': 'pictures._id',
'foreignField': 'files_id',
'as': 'pictures.chuncks'
}
},
populatePicture && {
'$unwind': {
'path': '$pictures',
'preserveNullAndEmptyArrays': true
}
},
Но таким образом я получаю двоичные данные изображения из fs.chunks в своем ответе на постер ... что я думаю, что это не правильно
МожетКто-нибудь, помогите мне с этим вопросом для заполнения мангуста?
Полный рабочий код можно найти в https://github.com/w8896699/UTPS-api/pull/15