Javascript 从mongodb gridfs数据库检索多部分表单数据并在react native app中显示图像
我需要帮助,过去两周来我一直在解决这个问题。我使用multer和gridfs将文本数据以及图像上传到mongodb数据库,上传工作正常,因为数据上传并存储在不同的块中。然而,我正在努力完成两件事:Javascript 从mongodb gridfs数据库检索多部分表单数据并在react native app中显示图像,javascript,mongodb,react-native,multer,gridfs,Javascript,Mongodb,React Native,Multer,Gridfs,我需要帮助,过去两周来我一直在解决这个问题。我使用multer和gridfs将文本数据以及图像上传到mongodb数据库,上传工作正常,因为数据上传并存储在不同的块中。然而,我正在努力完成两件事: 检索存储在图像旁边的数据 获取图像数据并将其显示在我的react native应用程序中 我的数据库如下所示: 数据文本数据位于post集合中,而图像数据位于image_uploads.chunks和image_upload.files中,它们都是使用多部分表单数据、multer和gridfs通过
/////////////////////////////媒体下载路线//////////////////////
路由器.get('/post',异步(req,res)=>{
gfs.files.find().toArray((错误,文件)=>{
//检查文件是否正确
如果(!files | | files.length==0){
res.send({files:false});
}否则{
file.map(文件=>{
如果(
file.contentType==='image/jpeg'||
file.contentType==='image/png'
) {
file.isImage=true;
}否则{
file.isImage=false;
}
});
res.send({files:files});
}
});
});
下面是从服务器接收数据的客户端代码
const[photo,setPhoto]=useState(null)
const getPost=async()=>{
试一试{
const response=wait dataApi.get('/post');
const image=response.data.files[0]。文件名
console.log(response.data)
console.log('Image:',Image)
console.log('Data:',response.body)
setPhoto(图像)
}捕捉(错误){
console.log(错误消息)
}
}
console.log('Photo:',Photo)
下面是response.data的std out,这是image\u uploads.files中的数据,目标是显示image\u uploads.files中的所有图像。但是,我只使用第一个图像文件名(即2157D425C51A5F3F5F5A7CF8579137EEB6.jpg)进行测试,并调用setPhoto为其设置照片状态。但当我将其分配给图像标签时,应用程序中的显示是空白的,我怀疑文件名应该附加一些内容,可能是数据库的url不确定,请帮助
第二个问题是,对于image_uploads.files中的每个图像,我希望在post集合中检索其关联数据,这些数据是使用多部分表单数据与图像一起上载的。post collection中的post.mediaData.id是一个外键,它是图像id,但response.body或response中没有post collection中的数据。请帮助。提前谢谢
Object {
"files": Array [
Object {
"_id": "5de29f8dd0f99e6d6a0371ef",
"chunkSize": 261120,
"contentType": "image/jpeg",
"filename": "2157d425c51a5f3f5a7cf8579137eeb6.jpg",
"isImage": true,
"length": 1046594,
"md5": "7e1cb512a36b901e3acfcb9d08f0778f",
"uploadDate": "2019-11-30T16:57:52.372Z",
},
Object {
"_id": "5de2c1bed0f99e6d6a0371f6",
"chunkSize": 261120,
"contentType": "image/jpeg",
"filename": "3ffe7616d7956084219cb4f134c89798.jpg",
"isImage": true,
"length": 1046594,
"md5": "7e1cb512a36b901e3acfcb9d08f0778f",
"uploadDate": "2019-11-30T19:23:45.053Z",
},
],
}
Image: 2157d425c51a5f3f5a7cf8579137eeb6.jpg
Data: undefined
Photo: 2157d425c51a5f3f5a7cf8579137eeb6.jpg
你有没有找到解决这个问题的办法?