我正在尝试使用以下代码使用快速路由器检索数据。这个想法是将来自皮肤镜检查模型的 json 数据与最初使用 multer 和 gridfs 存储的图像数据相结合。因此前端将接收包含:标题、数据、文件名和图像数据的数据
不知何故,照片数据不包含图像数据。我该如何解决 ?
const router = require('express').Router();
let Dermoscopy = require('../models/photo_dermoscopy.model');
let PhotoFile = require('../models/photouploads.files.model');
let PhotoChunks = require('../models/photouploads.chunks.model');
router.route('/:id').get((req, res) => {
Dermoscopy.find({ sessionId: { $eq: req.params.id }})
.then(photo_dermoscopy => {
const photodata = [];
photo_dermoscopy.map(item => {
var imageData = PhotoFile.find({filename:item.filename})
.then(doc => {
PhotoChunks.find({files_id: doc[0]._id}).then(item => {
let fileData = [];
for (i=0; i< item.length; i++) {
fileData.push(item[i].data.toString('base64'));
}
let image = 'data: '+ doc[0].contentType + ';base64,' + fileData.join('');
return image;
})
.catch(err => res.status(400).json('Error: ' + err));
})
.catch(err => res.status(400).json('Error: ' + err));
photodata.push({caption: item.caption, date: item.datetaken, filename: item.filename, photo: imageData})
})
res.send(photodata)
})
.catch(err => res.status(400).json('Error: ' + err));
});