【发布时间】:2019-12-09 21:18:08
【问题描述】:
我正在使用 create-react-app 学习 React,构建一个应用程序,我在其中向外部源发出 API 请求。 我在构建项目时将此请求留在了前端,但现在我想将其移动到服务器页面以隐藏我的 API 密钥。
我不完全了解的是如何在 create-react-app 环境中集成服务器,并做出适当的路由到前端。 在我看来,我认为这个过程是这样工作的:
运行 npm start > 我的服务器页面向第三方发出 api 请求 > 服务器页面收到响应 > 服务器页面以 JSON 格式向前端页面提供响应。
注意:尽管 stackoverflow 上的很多答案都表明您可以将 api 密钥隐藏在 .env 配置文件中,但事实并非如此,因为它嵌入在最终构建中并且可以公开访问。
【问题讨论】:
-
你需要一个单独的服务器来充当你的 React 前端和第 3 方 API 之间的中介。
create-react-app仅是前端;将服务器视为一个单独的项目。如果你也想使用 node,我建议 expressjs。 express 服务器将为您的 React 应用程序提供一个 API 端点,如/getweather?city=x,存储 API 机密等,向第 3 方 API 发出请求并将其转发到您的 React 应用程序,可能是 JSON。请注意,由于服务器将在不同的端口上运行(至少在开发期间),因此您需要为 express 设置 cors。 -
@ChrisG - '将服务器视为一个单独的项目' - 谢谢,我没有以这种方式认为它是单独的。我现在找到了一个关于如何设置和连接 create-react-app 前端与 node/expressjs 后端的在线教程
标签: javascript node.js reactjs api create-react-app