【发布时间】:2021-08-29 03:27:28
【问题描述】:
我正在尝试使用带有以下代码的快速路由器检索数据。 这个想法是将来自皮肤镜检查模型的 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));
});
【问题讨论】:
标签: node.js express multer gridfs