Javascript 从mongodb gridfs数据库检索多部分表单数据并在react native app中显示图像

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通过

我需要帮助,过去两周来我一直在解决这个问题。我使用multer和gridfs将文本数据以及图像上传到mongodb数据库,上传工作正常,因为数据上传并存储在不同的块中。然而,我正在努力完成两件事:

  • 检索存储在图像旁边的数据
  • 获取图像数据并将其显示在我的react native应用程序中
  • 我的数据库如下所示:

    数据文本数据位于post集合中,而图像数据位于image_uploads.chunks和image_upload.files中,它们都是使用多部分表单数据、multer和gridfs通过相同的post路由上传的

    这是服务器端get路由,在这里我从mongodb检索数据并为客户端提供服务

    
    /////////////////////////////媒体下载路线//////////////////////
    路由器.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
    

    你有没有找到解决这个问题的办法?