在reactjs

时间:2017-07-12 04:12:21

标签: api reactjs express multer

我正在通过我的反应前端从我的api中检索图像文件。我不确定在返回图像后如何显示图像,因为我的组件接收到一个响应,其中blob承诺在组件安装时尚未解析。

这是我的后端api使用express.js,特别是使用multer先前保存的文件响应的部分。

Pet.findOne({_id : req.params.petId}, function(err, pet) {
          if(err)return next(err);
          if(!pet){
            return res.status(400).json({message:"Pet not found", success: false});
          }
          res.sendFile(pet.profilePicturePath, {root : './'});
        });

这可以从mongodb找到宠物图像,然后使用快递' sendFile方法在这里响应我的前端请求:

fetch('/api'+nextState.location.pathname,{
      headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
      },
      method: 'POST',
      body: JSON.stringify({
        token: tokenFound
      })
    })
    .then((res)=>{
      if(res.error){
        browserHistory.push('/login')
      }
      return res;
    }).then((json) =>{
      if(json.success === false){
        browserHistory.push('/login');
      }else{
        localStorage.setItem('token', tokenFound);
        nextState.routes.json = json;
      }
    }).then((blob) => {
      nextState.routes.blob = blob;
      cb();
    })
    .catch(err => console.log('Error token: ' + err));
  }else{
    browserHistory.push('/login');
    cb();
  }

当我转到我的组件PetPage时,它调用上面的函数onEnter''我不知道如何显示我收到的图像文件。

0 个答案:

没有答案