我正在尝试使用axios从外部API获取json并将其提供给我的前端。当我转到我创建的路由时,我看到json很好。然而,当我通过点击端点将其传递到前端,并控制台日志查看它是否有效时,我得到的是:promise 的前端控制台日志
这是我获取外部API的后端代码:
app.get('/entertainment', async (req,res) => {
const respy = await axios.get(process.env.API_URL, {
headers: {
'Authorization': `Bearer ${process.env.API_KEY}`
}
})
.then((resp) => res.send(resp.data))
.catch(e => console.log(e, "SOME ERROR"))
})
前端部分:
componentDidMount(){
fetch('http://localhost:8000/entertainment').then((res) => {
this.setState({
projectData: res.json()
})
}).then(res => {
console.log(this.state.projectData)
})
}
我该如何履行此承诺?我以为.然后或等待会解决它。
您正在将promise记录到控制台中。正如你在屏幕截图中看到的那样,这个承诺正在得到解决。正在通过以下对象解决此问题:
{
businesses: [...],
region: [...],
total
}
你只是没有用它做任何事情。考虑做以下事情:
向前端的api发出请求,并在控制台中记录fetch解析的数据
fetch(YOUR_SERVER_URL).then((res) => res.json()).then(data => {
console.log(data);
});
对编辑中包含的代码进行更改:
componentDidMount(){
fetch('http://localhost:8000/entertainment').then((res) => res.json()).then(data => {
console.log(data)
this.setState({
projectData: data
})
})
}