繁体   English   中英

Heroku:如何部署客户端和服务器运行在不同端口上的节点应用程序?

[英]Heroku: How to deploy a node app with client and server running on different ports?

我有一个 nodejs API 作为服务器,React/Redux 应用程序作为客户端位于一个 git 项目中: https : //github.com/lafisrap/fcc_nightlife.git

我想使用 heroku cli 将它部署在 Heroku 上。

package.json 中的脚本部分是:

  "scripts": {
    "start-dev": "concurrently \"yarn run server\" \"yarn run client\"",
    "start": "yarn run server | yarn run client",
    "server": "babel-node server.js",
    "client": "node start-client.js",
    "lint": "eslint ."
  },

启动client.js:

const args = [ 'start' ];
const opts = { stdio: 'inherit', cwd: 'client', shell: true };
require('child_process').spawn('yarn', args, opts);

在客户端文件夹中,我有另一个 package.json 定义客户端。 它的脚本部分:

  "scripts": {
    "start": "react-scripts start",
  }

我做了:

heroku 创建
git push heroku master

api 运行良好。 但我不知道如何启动/访问客户端。

不能在一个 Heroku 应用程序中部署两个服务。 简而言之,您必须将它们部署到单独的 Heroku dynos 才能部署两个应用程序。

此 stackoverflow对类似问题的回答中提供了更多信息。

PS:构建 React 文件后,始终可以选择从 API 服务器提供 JS 文件。

希望这有帮助!

这个 repo 显示了 Node.js 的设置,它为在单个 Heroku dyno 上运行的 React 前端提供服务: https : //github.com/mars/heroku-cra-node我能够使用它作为指南来启动并运行.

实际上,您一定不想在不同的端口上运行。 因为cors和其他问题。 在 nodejs 中实现代理或将 nginx 实现为服务器和客户端请求的网关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM