【问题标题】:How to implement create-react-app with node.js backend with heroku?如何使用heroku实现带有node.js后端的create-react-app?
【发布时间】:2017-07-16 02:49:52
【问题描述】:

我希望将一些 json 和 csv 文件中的一些数据提供给我的前端,该前端是基于 create-react-app 构建的。

我的想法是让它们都在不同的端口上监听(3000 用于 React,3001 用于快速后端),然后对 3001 进行 API 调用以通过 ajax 获取我需要的任何数据。

这如何在生产中工作? 例如对于 Heroku,我将如何部署它,因为它正在侦听 2 个不同的端口?

这会有什么不可预见的问题/有没有更好的方法?

添加更多信息: 我的后端所做的只是解析一些 csv 和 json 并以格式化和编辑的 json 格式提供它。

【问题讨论】:

  • 这个问题的答案已经可以通过简单的谷歌搜索找到,"how do I ask a good question" 政策文章很清楚地告诉你在发布之前要做的事情。我用谷歌搜索了“create-react-app heroku”,第一个命中是github.com/mars/create-react-app-buildpack,它详细地涵盖了答案。
  • @Mike'Pomax'Kamermans 看来你误读了我的问题
  • @mohammed 我很确定您在有时间阅读整个页面之前做出了回应,所以:阅读整个页面。如果这些说明对您来说还不够,那么您现在可以用“我通读 X 但说明不包括我如何……”来更新您的问题。你和我们一样有责任帮助回答这个问题,所以你有责任尽可能详细地回答你的问题。 React 本身不是服务器,只有 Express 是,所以即使 react 通过 webpack 等在备用端口上运行开发热加载程序,这与部署无关,被 env 禁用。

标签: node.js reactjs heroku


【解决方案1】:

如果你使用 Heroku,建议分开使用两个 dyno。一个用于提供静态文件和响应,另一个用于 API 服务器。

或者你可以使用 PM2 在一个 dyno 中做同样的事情,通过使用它的 fork 模式。

在这两种情况下,由于两台服务器不共享同一个端口,您在使用会话时会遇到一些问题,并且在发出 API 请求时会遇到麻烦。我认为可以通过使用基于令牌的授权(如 jwt 或使用单独的会话存储(如 redis

)来解决)

【讨论】:

    猜你喜欢
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2019-05-30
    • 2017-09-06
    • 1970-01-01
    相关资源
    最近更新 更多