我正在通过我的反应前端从我的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''我不知道如何显示我收到的图像文件。