node.js - 如何从 Express API 获取数据并将其显示到 React 应用程序?
问题描述
我最近开始学习反应,我正在尝试创建一个应用程序,该应用程序使用我使用 Express 创建的 API。
目前我在http://localhost:3000/api本地托管我的 Express API
但是,当我打开邮递员或浏览器并向http://localhost:3000/api/tasks发送 GET 请求时,我得到了我的 API 上的所有任务,正如预期的那样。
我的反应应用程序看起来像这样
class App extends React.Component{
constructor(){
super()
this.state = {
tasks: {}
}
}
...
componentDidMount() {
this.setState({loading: true})
fetch("http://localhost:3000/api/tasks/1")
.then(response => response.json())
.then(data => {
this.setState({
tasks: data
})
})
}
...
render() {
return(
<div>
<p>{this.state.tasks.id}</p>
</div>
}
}
当我在浏览器中打开 dev 选项卡时,我可以看到请求(代码:304)已发送,并且有一个响应,它是一个包含我需要的对象的 json 文件。不过,我无法显示从 API 获取的数据。
解决方案
有一个 node.js 包用于提供 Connect/Express 中间件,该中间件可用于启用具有各种选项的 CORS。
(npm cors)
推荐阅读
- java - 获取没有路径的系统图标
- javascript - 推送新节点时 D3.js 更新图
- php - 更改语言环境后,Laravel 8 重定向回同一页面
- reactjs - 禁用 reactdatagrid 中某些行的复选框
- amazon-cloudfront - 为 CloudFront 发行版创建 ARecord 时出现 AWS CDK 错误
- python - Dash Python:将日期选择器和侧边栏添加到仪表板
- mysql - 为什么在 MySql 查询中负数(例如 ~~-1)返回 184467440737...
- r - 基于 R 中的列和前一行值的新列值
- javascript - 节点 js 在 TCP.onStreamRead (internal/stream_base_commons.js:209:20) 处读取 ECONNRESET | 网络套接字
- typescript - 如何将参数的类型设置为 Vue 组件