Я сохраняю изображения из своего углового приложения в MongoDB с использованием GridFs. Но я не могу понять, как получить изображения из БД в приложение?
Я использую пользовательский objectId
для запроса.GET изображения от GridFs до Angular
EDIT
Похоже ГЭТ часть теперь работает, но тогда не было средств массовой информации в коллекции. Я немного поиграл с кодом, и теперь я могу видеть fs.chunks и fs.files в базе данных. Я думаю, проблема в том, что я пытаюсь запросить метаданные в запросе GET. Это не возвращает никаких данных ответа. Кто-нибудь понял, как это исправить?
var fs = require('fs');
var conn = mongoose.connection;
var Grid = require ('gridfs-stream');
Grid.mongo = mongoose.mongo;
var gfs = Grid (conn.db);
var buffer = "";
app.post('/uploads/', multer({
upload: null,
onFileUploadStart: function (file, req){
this.upload = gfs.createWriteStream({
filename: file.originalname,
metadata:{"objectId" : req.body.project_id},
mode: "w",
chunkSize: 1024*4,
content_type: file.mimetype,
root: "fs",
});
},
onFileUploadData: function(file, data) {
this.upload.write(data);
},
onFileUploadComplete: function(file, res) {
done=true;
}
}), function(req, res){
res.status(200);
res.send("Success!");
});
app.route('/uploads/media/:projectId').get(function (req, res){
var readstream = gfs.createReadStream({
"metadata.objectId" : req.params.projectId
});
res.set('Content-Type', 'image/jpeg');
readstream.pipe(res);
});
Что результат app.get ('/ добавления /: ObjectId –
„содержимое файла“ появляется пустой, статус получить запрос на объект „(в ожидании)“ – Wandkleister