Api 在reactjs中检索图像文件
我正在通过react前端从api检索图像文件。当我的组件收到带有blob承诺的响应时,我不确定如何显示返回的图像,该承诺在组件装载时尚未解决 下面是我使用express.js的后端api,特别是使用先前使用multer保存的文件进行响应的部分Api 在reactjs中检索图像文件,api,reactjs,express,multer,Api,Reactjs,Express,Multer,我正在通过react前端从api检索图像文件。当我的组件收到带有blob承诺的响应时,我不确定如何显示返回的图像,该承诺在组件装载时尚未解决 下面是我使用express.js的后端api,特别是使用先前使用multer保存的文件进行响应的部分 Pet.findOne({_id : req.params.petId}, function(err, pet) { if(err)return next(err); if(!pet){ re
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中查找pets图像,然后使用express的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();
}
当我转到调用上述函数onEnter“”的组件PetPage时,我不确定如何显示收到的图像文件。使用这一行:您能提供更多关于“cb();”的更新吗您是否正在使用任何库(如
redux
)来管理异步数据api?@SourLeangChhean using将不起作用,因为我需要进行api调用来检索图像文件,并在执行此操作时提供jwt来检查用户是否被授权。@nagarajtanri yes,cb()是回调函数,它允许我在react routes.js文件中运行此获取方法,然后呈现组件。我使用它来检查用户是否已登录,然后如果api确认,则适当地指导他们。我没有使用redux来异步加载,我不知道redux是如何工作的,但我从后端收到了一个最终解决的承诺。@Athoma1那么,您可以通过您的reactJs组件向我们展示此api的调用吗?使用这行代码:您能提供更多关于“cb();”的更新吗您是否正在使用任何库(如redux
)来管理异步数据api?@SourLeangChhean using将不起作用,因为我需要进行api调用来检索图像文件,并在执行此操作时提供jwt来检查用户是否被授权。@nagarajtanri yes,cb()是回调函数,它允许我在react routes.js文件中运行此获取方法,然后呈现组件。我使用它来检查用户是否已登录,然后如果api确认,则适当地指导他们。我没有使用redux进行异步加载,我不确定redux是如何工作的,但我从后端收到了一个最终解决的承诺。@Athoma1那么,您能否通过reactJs组件向我们展示此api的调用?