如何将promise结果转换为json



我正在尝试使用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
})
})
}

最新更新