如何配置我的React-Node App,以便可以将其部署到Heroku?

乔希·西蒙(Josh Simon)

因此,我使用create-react-app构建了一个简单的MERN应用,并将其部署到Heroku。我在运行在localhost:3000上的客户端文件夹中构建前端,该文件夹将请求发送到我的express服务器作为localhost:5000的代理。我的文件结构如下:

+client
   |
   +-node_modules
   +-public
   +-src
     |
     +-components
        +-App.js
        +-index.js
//server
+-models
+-node-modules
+-package-lock.json
+-package.json
+-server.js

我已经package-json像这样设置了代理 "proxy": "http://localhost:5000",

所以我的主要问题是:如何配置API端点进行部署?

目前,它们的结构如下:

来自React组件的API调用:

  useEffect(() => {
    axios.get("http://localhost:5000/api/all-cafes")
      .then((cafe) => {
        setCafe(cafe.data);
      })
      .catch((err) => {
        console.log(err);
      })
  }, [])

在server.js上表达功能

app.get('/api/all-cafes', (req,res) => {
    Cafe.find()
    .then((result) => {
        res.send(result)
    })
    .catch(err => {
        console.log(err)
    })
})

我的另一个问题是.env文件的作用什么,我是否需要解决这个问题?

我有一个有用的建议,说我可以在不同的服务器上运行前端和后端,并使用以下代码根据是开发阶段还是生产阶段来调整代码:

const prefix = process.env.NODE_ENV === 'production' ? "http://heroku_app_address" : "http://localhost:5000"
function getUrl(relativeUrl) {
   return prefix + "/" + relativeUrl;
}

fetch(getUrl('api/all-reviews'));

但是我不确定如何实现此功能,我是否需要.env文件以及(如果需要)该文件中的内容。

罗希特·汉娜(Rohit Khanna)

.env文件可以帮助您specifiy某些凭证或基于部署环境无论是要改变端点(devqaprod可有differewnt API端点),或者你要提供一定的密钥或配置,否则不应该是你的代码库的一部分(clientSecret等)。

create-react-app.dev/docs有详细解释这些。
如果您尚未使用引导您的应用程序,create-react-app则可以使用dot-envnpm软件包。这里详细说明了步骤:堆栈溢出:向React Project中添加.env文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我应该如何设置我的存储桶策略,以便可以部署到S3?

来自分类Dev

我如何序列化要上传的表单文件,以便可以使用Backbone.js,jQuery和Node.js将其存储在mongo数据库中?

来自分类Dev

我如何序列化要上传的表单文件,以便可以使用Backbone.js,jQuery和Node.js将其存储在mongo数据库中?

来自分类Dev

如何使用特征哈希器转换非数字离散数据,以便可以将其传递到SVM?

来自分类Dev

部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

来自分类Dev

部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

来自分类Dev

我应该将Node JS应用放在哪里,以便可以通过主网站进行访问?

来自分类Dev

在同时具有Snap和Apt的情况下,如何备份所有应用程序,以便可以将其还原到新计算机上

来自分类Dev

将 Node 应用程序部署到 Google Cloud App Service - 如何编辑我的代码?

来自分类Dev

如何在项目中部署AWS CLI,以便可以通过编程方式使用它?

来自分类Dev

如何将Part转换为Blob,以便可以将其存储在MySQL中?

来自分类Dev

如何将对象映射到数组,以便可以将其转换为csv?

来自分类Dev

如何编译ELF二进制文件以便可以将其作为动态库加载?

来自分类Dev

如何通过函数保存参数的值,以便可以将其初始值多次使用?

来自分类Dev

如何在Scala中处理CSV文件,以便可以将其行分成数组?

来自分类Dev

调用对象后如何更改对象,以便可以将其插入链接

来自分类Dev

如何使std :: vector类成为Sequence,以便可以将其传递给boost :: hana :: group?

来自分类Dev

如何获取Scala的Option类,以便可以将其传递给getDeclaredMethod()

来自分类Dev

如何从字符串中删除引号,以便可以将其用于关联数组

来自分类Dev

如何引用原始命令,以便可以将其替换为函数

来自分类Dev

如何创建匿名类,以便可以将其传递给泛型构造函数?

来自分类Dev

如何将Node.js和Vue.js部署到Heroku

来自分类Dev

部署到 Heroku 后,如何使用代理访问 Node Express 服务器?

来自分类Dev

如何创建密钥和机密,以便可以发布到存储桶?

来自分类Dev

如何绑定到DynamicResource,以便可以使用Converter或StringFormat等?(修订版4)

来自分类Dev

如何转换NSUSerdefaults AnyObject?到SWIFT数组,以便可以附加到它?

来自分类Dev

如何抵消我的栏目,以便可以单击链接?

来自分类Dev

我有一个单列数据。我想重塑它,以便可以将其用于RNN

来自分类Dev

我将如何发布 Orchard.Core 以便我可以部署到网络主机?

Related 相关文章

  1. 1

    我应该如何设置我的存储桶策略,以便可以部署到S3?

  2. 2

    我如何序列化要上传的表单文件,以便可以使用Backbone.js,jQuery和Node.js将其存储在mongo数据库中?

  3. 3

    我如何序列化要上传的表单文件,以便可以使用Backbone.js,jQuery和Node.js将其存储在mongo数据库中?

  4. 4

    如何使用特征哈希器转换非数字离散数据,以便可以将其传递到SVM?

  5. 5

    部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

  6. 6

    部署到heroku时,如何使我的node / socket.io应用使用正确的端口?

  7. 7

    我应该将Node JS应用放在哪里,以便可以通过主网站进行访问?

  8. 8

    在同时具有Snap和Apt的情况下,如何备份所有应用程序,以便可以将其还原到新计算机上

  9. 9

    将 Node 应用程序部署到 Google Cloud App Service - 如何编辑我的代码?

  10. 10

    如何在项目中部署AWS CLI,以便可以通过编程方式使用它?

  11. 11

    如何将Part转换为Blob,以便可以将其存储在MySQL中?

  12. 12

    如何将对象映射到数组,以便可以将其转换为csv?

  13. 13

    如何编译ELF二进制文件以便可以将其作为动态库加载?

  14. 14

    如何通过函数保存参数的值,以便可以将其初始值多次使用?

  15. 15

    如何在Scala中处理CSV文件,以便可以将其行分成数组?

  16. 16

    调用对象后如何更改对象,以便可以将其插入链接

  17. 17

    如何使std :: vector类成为Sequence,以便可以将其传递给boost :: hana :: group?

  18. 18

    如何获取Scala的Option类,以便可以将其传递给getDeclaredMethod()

  19. 19

    如何从字符串中删除引号,以便可以将其用于关联数组

  20. 20

    如何引用原始命令,以便可以将其替换为函数

  21. 21

    如何创建匿名类,以便可以将其传递给泛型构造函数?

  22. 22

    如何将Node.js和Vue.js部署到Heroku

  23. 23

    部署到 Heroku 后,如何使用代理访问 Node Express 服务器?

  24. 24

    如何创建密钥和机密,以便可以发布到存储桶?

  25. 25

    如何绑定到DynamicResource,以便可以使用Converter或StringFormat等?(修订版4)

  26. 26

    如何转换NSUSerdefaults AnyObject?到SWIFT数组,以便可以附加到它?

  27. 27

    如何抵消我的栏目,以便可以单击链接?

  28. 28

    我有一个单列数据。我想重塑它,以便可以将其用于RNN

  29. 29

    我将如何发布 Orchard.Core 以便我可以部署到网络主机?

热门标签

归档