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

时间:2017-09-01 10:04:58

标签: node.js heroku deployment server client

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

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

package.json中的scripts部分是:

  "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运行正常。但我不知道如何启动/访问客户端。

3 个答案:

答案 0 :(得分:3)

无法在一个Heroku应用中部署两项服务。简而言之,您必须将它们部署为单独的Heroku dynos以部署两个应用程序。

this stackoverflow answer针对类似问题提供了更多信息。

  

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

希望这有帮助!

答案 1 :(得分:1)

此仓库显示了Node.js的设置,该设置为在单个Heroku dyno上运行的React前端提供服务:https://github.com/mars/heroku-cra-node我可以以此为指导来启动并运行。

答案 2 :(得分:0)

实际上,您不一定要在其他端口上运行。由于cors和其他问题。在nodejs中实现代理,或者将nginx用作服务器和客户端请求的网关。