Node.js 如何让应用程序引擎前端服务使用来自不同应用程序引擎服务的API

Node.js 如何让应用程序引擎前端服务使用来自不同应用程序引擎服务的API,node.js,reactjs,google-app-engine,proxy,Node.js,Reactjs,Google App Engine,Proxy,我有两个应用程序引擎服务,一个用于React前端,另一个用于Express后端。并不是说,虽然这两个东西是同一个应用程序的一部分,但它们是不同的服务,因此有不同的URL可供访问 我的React应用程序中的所有请求都设置为使用后端端点的完整url,例如: Axios.get(`https://backend.appspot.com/api/v1/users/get/${userId}`) 然而,这意味着在中,我不能在本地开发我的后端,因为React应用程序总是指向应用程序引擎服务 我试图实现的是

我有两个应用程序引擎服务,一个用于React前端,另一个用于Express后端。并不是说,虽然这两个东西是同一个应用程序的一部分,但它们是不同的服务,因此有不同的URL可供访问

我的React应用程序中的所有请求都设置为使用后端端点的完整url,例如:

Axios.get(`https://backend.appspot.com/api/v1/users/get/${userId}`)
然而,这意味着在中,我不能在本地开发我的后端,因为React应用程序总是指向应用程序引擎服务

我试图实现的是,如果后端和前端位于同一台服务器上,并且您只需使用React proxy设置,就可以像这样向端点发出请求:

Axios.get(`/api/v1/users/get/${userId}`)
env_variables:
IS_APPENGINE: 'true'
我曾尝试手动设置代理,但现在我想知道这是否完全是错误的方法

有什么建议吗


注意:如果这个问题需要进一步解释,请告诉我。

我认为不可能实现与在本地环境中开发完全相同的功能,但您始终可以根据需要配置路由规则和URL

为了创建自己的路由规则,您可以使用在其中定义它们。通过这种方式,您可以选择您的请求的确切方式

至于您对开发过程的关注,您需要在代码中进行一些配置。基本上,你需要让你的应用程序足够智能,以便知道它在哪里运行:在本地还是在应用程序引擎上

为此,我建议您在app.yaml中定义一个env变量,如下所示:

Axios.get(`/api/v1/users/get/${userId}`)
env_variables:
IS_APPENGINE: 'true'
然后,您可以在应用程序中检查其运行位置并设置URL路径:

if(Platform.environment['IS_APPENGINE'] == 'true') {
URL1 = .....
URL2 = .....}  else{
URL1 = localhost/page1..
URL2 = localhost/page2..
}
这本书中也有关于这个话题的讨论