Node.js 谷歌云:存储和应用引擎

Node.js 谷歌云:存储和应用引擎,node.js,reactjs,google-app-engine,deployment,google-cloud-storage,Node.js,Reactjs,Google App Engine,Deployment,Google Cloud Storage,我有一个web应用程序,它分别有前端React和后端Xpress,因此在我的本地环境中,前端在localhost:8080上运行,而后端在localhost:3000上运行 我可以将后端服务器部署到运行在上的应用程序引擎 然后我还通过引用将前端部署到Google云存储。但是,前端应用程序也在上运行。 当我打开应用程序时,它显示前端,但api调用不起作用 我还没有自定义域,我也在使用postgresql。 有没有办法为前端和后端设置不同的url?还是我在设置应用程序的结构中做了一些错误的事情 默认

我有一个web应用程序,它分别有前端React和后端Xpress,因此在我的本地环境中,前端在localhost:8080上运行,而后端在localhost:3000上运行

我可以将后端服务器部署到运行在上的应用程序引擎

然后我还通过引用将前端部署到Google云存储。但是,前端应用程序也在上运行。 当我打开应用程序时,它显示前端,但api调用不起作用

我还没有自定义域,我也在使用postgresql。
有没有办法为前端和后端设置不同的url?还是我在设置应用程序的结构中做了一些错误的事情

默认appspot.com域名或自定义域名的映射是在应用程序级别完成的,而不是在服务级别。您的两个服务属于同一个应用程序,因此将映射到同一个域

这里的旁注:我假设您在各自的.yaml文件中为您的服务选择了不同的服务/模块名称,否则它们会在部署时相互覆盖

将请求路由到一个或另一个服务是基于URL中文件路径部分(而不是主机/域部分)的模式匹配完成的。第一场比赛获胜,没有一场比赛总是进入默认服务

因此,frontent通常是默认服务,您也可以不命名它。任何其他更专用的服务在其URL路径中都有一个标识模式,该模式用于。例如,在您的情况下,后端服务将是专门的服务,可以服务于(比如)以/backend/开头的URL,因此可以有一个dispatch.file,如下所示:

dispatch:
  - url: "*/backend/*"
    module: <backend-service-name>
或多或少相关:

注意:您还必须考虑专门服务中的特定模式。例如,如果您的后端服务当前为/index.html请求提供服务,则必须将其调整为服务/backend/index.html

也许可以使用其他路由方法使这两个服务在没有调度文件的情况下并行工作,请参阅整个部分,但是,设置起来更困难,也更脆弱。特别是在尝试同时使用自定义域时